aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemsen2012-09-26 00:21:06 +0200
committerGravatar Tom Willemsen2012-09-26 00:21:06 +0200
commit0b9682ea2b6291b8058c6c5a81eee682023b7f29 (patch)
treed6d47700d409781d1701e074d17f424f312a577c
parent0bcd0b9c5ac5544eb6571addf9a7602b34b6c6ce (diff)
downloadgitto-0b9682ea2b6291b8058c6c5a81eee682023b7f29.tar.gz
gitto-0b9682ea2b6291b8058c6c5a81eee682023b7f29.zip
Add --purge
`--purge' deletes all the repositories from gitto that don't exist on the filesystem (anymore).
-rw-r--r--gitto/main.scm12
1 files changed, 10 insertions, 2 deletions
diff --git a/gitto/main.scm b/gitto/main.scm
index 9f18a37..281a5c8 100644
--- a/gitto/main.scm
+++ b/gitto/main.scm
@@ -173,12 +173,18 @@ to the tracked files. Utracked files will not register."
(newline))
(sort repositories string<?)))
+(define (purge)
+ "Purge all items from the list that can no longer be found."
+ (set! repositories (filter file-exists? repositories))
+ (save-repositories-list))
+
(define option-spec
`((version (single-char #\v))
(help (single-char #\h))
(register (single-char #\r) (value #t) (predicate ,git-dir?))
(remove (single-char #\R) (value #t) (predicate ,known?))
- (repositories (single-char #\l))))
+ (repositories (single-char #\l))
+ (purge (single-char #\p))))
(define (main args)
"Parse the command line options and run the appropriate functions."
@@ -187,10 +193,12 @@ to the tracked files. Utracked files will not register."
(version-wanted (option-ref options 'version #f))
(registration-needed (option-ref options 'register #f))
(removal (option-ref options 'remove #f))
- (list (option-ref options 'repositories #f)))
+ (list (option-ref options 'repositories #f))
+ (purge? (option-ref options 'purge #f)))
(cond (version-wanted (version))
(help-wanted (help))
(registration-needed => register-repository)
(removal => remove-repository)
(list (list-repository-locations))
+ (purge? (purge))
(#t (list-repositories)))))