From 8474b06f8fc840b3bb258b799a5f54e81a106ae5 Mon Sep 17 00:00:00 2001 From: Mica White Date: Sat, 4 Apr 2026 09:18:22 -0400 Subject: --offline option --- src/bin/git-diff-autosave.rs | 15 +++++++++------ src/bin/git-restore-autosave.rs | 15 +++++++++------ 2 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/bin/git-diff-autosave.rs b/src/bin/git-diff-autosave.rs index 63aa130..8e7fea1 100644 --- a/src/bin/git-diff-autosave.rs +++ b/src/bin/git-diff-autosave.rs @@ -7,6 +7,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 repository = Repository::discover(".")?; let repo_id = git_autosave::repository_id(&repository)?; @@ -14,12 +15,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( 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( -- cgit v1.2.3