Skip to main content

Repo

Struct Repo 

Source
pub struct Repo {
    pub path: PathBuf,
    pub conf: Config,
}

Fields§

§path: PathBuf

The absolute path of the opened repo.

§conf: Config

Implementations§

Source§

impl Repo

Source

pub fn open(path: impl AsRef<Path>) -> Result<Self>

Open a repo. The path argument must be an absolute path.

Source

pub fn path(&self) -> &Path

Source

pub fn to_absolute_path(&self, path: impl AsRef<Path>) -> PathBuf

Source

pub fn get_key(&self) -> Result<String>

Read the master key from git config.

Returns an error if the key has not been configured.

Source

pub fn set_key_interactive(&self) -> Result<()>

Set the key interactively by prompting on stdin.

Source

pub fn check(&self, paths: &[PathBuf], staged: bool) -> Result<()>

Check if all files in the crypt list (or given paths) are encrypted.

When staged is true, only files staged for the current commit are checked, by intersecting staged files against the crypt list. This is used by the pre-commit hook to avoid checking the entire repo.

Returns Ok(()) if all files are encrypted, or an error summarizing which files are not encrypted. The process exits with a non-zero code when files are not encrypted, suitable for CI usage.

Source

pub fn install_hook(&self) -> Result<()>

Install a pre-commit hook that runs git-se check before each commit.

Creates <repo>/.git/hooks/pre-commit with the check script. Fails if a hook already exists and is not managed by git-se.

Source

pub fn run(&self, args: &[&str]) -> Result<()>

Run a git command in the repo, discarding its stdout/stderr.

Source

pub fn run_with_output(&self, args: &[&str]) -> Result<String>

Run a git command and return its trimmed stdout as a String.

Source

pub fn set_config(&self, key: &str, value: &str) -> Result<()>

Write a value to <prefix>.<key> in the repo-local git config.

Note: the value is stored verbatim (no trimming), so callers should sanitize it themselves if needed. This matters for the key field, which holds a user-supplied password and must not be silently modified.

Source

pub fn get_config(&self, key: &str) -> Result<String>

Read <prefix>.<key> from the repo-local git config.

Trait Implementations§

Source§

impl Clone for Repo

Source§

fn clone(&self) -> Repo

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Debug for Repo

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Default for Repo

Source§

fn default() -> Repo

Returns the “default value” for a type. Read more

Auto Trait Implementations§

§

impl Freeze for Repo

§

impl RefUnwindSafe for Repo

§

impl Send for Repo

§

impl Sync for Repo

§

impl Unpin for Repo

§

impl UnsafeUnpin for Repo

§

impl UnwindSafe for Repo

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> ArchivePointee for T

Source§

type ArchivedMetadata = ()

The archived version of the pointer metadata for this type.
Source§

fn pointer_metadata( _: &<T as ArchivePointee>::ArchivedMetadata, ) -> <T as Pointee>::Metadata

Converts some archived metadata to the pointer metadata for itself.
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts self into a Left variant of Either<Self, Self> if into_left is true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts self into a Left variant of Either<Self, Self> if into_left(&self) returns true. Converts self into a Right variant of Either<Self, Self> otherwise. Read more
Source§

impl<T> LayoutRaw for T

Source§

fn layout_raw(_: <T as Pointee>::Metadata) -> Result<Layout, LayoutError>

Returns the layout of the type.
Source§

impl<T, N1, N2> Niching<NichedOption<T, N1>> for N2
where T: SharedNiching<N1, N2>, N1: Niching<T>, N2: Niching<T>,

Source§

unsafe fn is_niched(niched: *const NichedOption<T, N1>) -> bool

Returns whether the given value has been niched. Read more
Source§

fn resolve_niched(out: Place<NichedOption<T, N1>>)

Writes data to out indicating that a T is niched.
Source§

impl<T> Pointable for T

Source§

const ALIGN: usize

The alignment of pointer.
Source§

type Init = T

The type for initializers.
Source§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
Source§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
Source§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
Source§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
Source§

impl<T> Pointee for T

Source§

type Metadata = ()

The metadata type for pointers and references to this type.
Source§

impl<T> Same for T

Source§

type Output = T

Should always be Self
Source§

impl<T> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.