From 45b2f8c6c5ff28d9f0b952f213c5372db2f937b0 Mon Sep 17 00:00:00 2001 From: Mica White Date: Thu, 2 Apr 2026 20:44:29 -0400 Subject: Rudimentary clean command --- src/bin/git-clean-autosaves.rs | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) create mode 100644 src/bin/git-clean-autosaves.rs diff --git a/src/bin/git-clean-autosaves.rs b/src/bin/git-clean-autosaves.rs new file mode 100644 index 0000000..5b5c61b --- /dev/null +++ b/src/bin/git-clean-autosaves.rs @@ -0,0 +1,23 @@ +use chrono::Utc; +use git_autosave::Autosave; +use git2::Repository; + +const THREE_MONTHS: i64 = 60 * 60 * 24 * 30 * 3; + +fn main() -> Result<(), anyhow::Error> { + let repository = Repository::discover(".")?; + for reference in repository.references()? { + let Ok(mut reference) = reference else { + continue; + }; + let Ok(autosave): Result = (&reference).try_into() else { + continue; + }; + + if Utc::now().timestamp() - autosave.time.seconds() > THREE_MONTHS { + reference.delete()?; + } + } + + Ok(()) +} -- cgit v1.2.3