diff options
Diffstat (limited to 'src/bin/git-restore-autosave.rs')
| -rw-r--r-- | src/bin/git-restore-autosave.rs | 15 |
1 files changed, 9 insertions, 6 deletions
diff --git a/src/bin/git-restore-autosave.rs b/src/bin/git-restore-autosave.rs index 482e2b5..819fd3c 100644 --- a/src/bin/git-restore-autosave.rs +++ b/src/bin/git-restore-autosave.rs @@ -19,6 +19,7 @@ fn main() -> Result<(), anyhow::Error> { let all_branches = std::env::args().any(|arg| arg == "--all-branches"); let all_devices = std::env::args().any(|arg| arg == "--all-devices"); let anytime = std::env::args().any(|arg| arg == "--anytime"); + let offline = std::env::args().any(|arg| arg == "--offline"); let force = std::env::args().any(|arg| arg == "--force"); let repository = Repository::discover(".")?; @@ -27,12 +28,14 @@ fn main() -> Result<(), anyhow::Error> { let branch = git_autosave::utils::current_branch(&repository)?; let earliest_time = repository.head()?.peel_to_commit()?.time(); - let gitconfig = repository.config()?; - let config: &'static _ = Box::leak(Box::new(Config::load()?)); - let auth = GitAuthenticator::new().set_prompter(Inquirer(config)); - let mut callbacks = RemoteCallbacks::new(); - callbacks.credentials(auth.credentials(&gitconfig)); - git_autosave::fetch_autosaves(&repository, callbacks)?; + if !offline { + let gitconfig = repository.config()?; + let config: &'static _ = Box::leak(Box::new(Config::load()?)); + let auth = GitAuthenticator::new().set_prompter(Inquirer(config)); + let mut callbacks = RemoteCallbacks::new(); + callbacks.credentials(auth.credentials(&gitconfig)); + git_autosave::fetch_autosaves(&repository, callbacks)?; + } let autosaves = git_autosave::autosaves(&repository)?; let autosaves = git_autosave::inquire::filter_autosaves( |
