Implement TUI init insert and generate workflows
This commit is contained in:
@@ -268,6 +268,36 @@ pub enum AutomaticEntryCommitter {
|
||||
None(NoGitEntryCommitter),
|
||||
}
|
||||
|
||||
/// Storage-owned selection of pass-compatible automatic Git commits for a
|
||||
/// recipient policy change.
|
||||
pub enum AutomaticPolicyCommitter {
|
||||
Git(Box<GitRepository>),
|
||||
None(crate::recipient::NoGitCommitter),
|
||||
}
|
||||
|
||||
impl AutomaticPolicyCommitter {
|
||||
pub fn for_directory(
|
||||
repository: &Repository,
|
||||
directory: &str,
|
||||
identity: GitIdentity,
|
||||
) -> Result<Self, GitError> {
|
||||
match GitRepository::open_innermost(repository, Path::new(directory), identity) {
|
||||
Ok(git) => Ok(Self::Git(Box::new(git))),
|
||||
Err(GitError::NotRepository) => Ok(Self::None(crate::recipient::NoGitCommitter)),
|
||||
Err(error) => Err(error),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl PolicyCommitter for AutomaticPolicyCommitter {
|
||||
fn commit(&mut self, change: &PolicyCommit) -> Result<(), PolicyCommitError> {
|
||||
match self {
|
||||
Self::Git(git) => PolicyCommitter::commit(git.as_mut(), change),
|
||||
Self::None(committer) => committer.commit(change),
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
impl AutomaticEntryCommitter {
|
||||
pub fn for_entry(
|
||||
repository: &Repository,
|
||||
|
||||
Reference in New Issue
Block a user