diff options
| author | Mica White <botahamec@outlook.com> | 2026-04-02 20:44:29 -0400 |
|---|---|---|
| committer | Mica White <botahamec@outlook.com> | 2026-04-02 20:44:29 -0400 |
| commit | 45b2f8c6c5ff28d9f0b952f213c5372db2f937b0 (patch) | |
| tree | bb4e521e5cc2e785ab94644c88e07a4c30d38ec0 /src/bin/git-clean-autosaves.rs | |
| parent | a42030e36f79502112783aedeb79e1797bd7d968 (diff) | |
Rudimentary clean command
Diffstat (limited to 'src/bin/git-clean-autosaves.rs')
| -rw-r--r-- | src/bin/git-clean-autosaves.rs | 23 |
1 files changed, 23 insertions, 0 deletions
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<Autosave, git2::Error> = (&reference).try_into() else { + continue; + }; + + if Utc::now().timestamp() - autosave.time.seconds() > THREE_MONTHS { + reference.delete()?; + } + } + + Ok(()) +} |
