aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar Tom Willemsen2012-06-30 12:57:30 +0200
committerGravatar Tom Willemsen2012-06-30 12:57:30 +0200
commit834855c0b3b3666ee0bcc52bf61a62fabbc852f0 (patch)
tree0626431588e2bee05707654a72228b9bf6cacc30
parent8b7ad95ade2c892a601cfa8fb6907fdc2bc7d902 (diff)
downloadgitto-834855c0b3b3666ee0bcc52bf61a62fabbc852f0.tar.gz
gitto-834855c0b3b3666ee0bcc52bf61a62fabbc852f0.zip
Add remove function
When using this program it might happen that you have added a repository that you would like to have removed, now that is possible.
-rwxr-xr-xgitto.scm16
1 files changed, 15 insertions, 1 deletions
diff --git a/gitto.scm b/gitto.scm
index 68a553d..4d4d0ef 100755
--- a/gitto.scm
+++ b/gitto.scm
@@ -30,6 +30,7 @@
(display "\
gitto [options]
-r, --register REPO Register a new repository directory
+ -R, --remove REPO Repmove a repository directory
-v, --version Display version
-h, --help Display this help
"))
@@ -61,6 +62,15 @@ gitto [options]
(display "Repository already registered."))
(newline))
+(define (remove-repository repository)
+ (if (member repository repositories)
+ (begin
+ (set! repositories (delete repository repositories))
+ (save-repositories-list)
+ (simple-format #t "Repository ~A removed." repository))
+ (display "Not a registered repository."))
+ (newline))
+
(define (git-revs-to-push)
(let* ((response (open-input-pipe "git log --pretty=oneline @{u}.. | wc -l"))
(num (string->number (read-line response))))
@@ -94,14 +104,18 @@ gitto [options]
`((version (single-char #\v) (value #f))
(help (single-char #\h) (value #f))
(register (single-char #\r) (value #t)
+ (predicate ,git-dir?))
+ (remove (single-char #\R) (value #t)
(predicate ,git-dir?))))
(define (main args)
(let* ((options (getopt-long args option-spec))
(help-wanted (option-ref options 'help #f))
(version-wanted (option-ref options 'version #f))
- (registration-needed (option-ref options 'register #f)))
+ (registration-needed (option-ref options 'register #f))
+ (removal (option-ref options 'remove #f)))
(cond (version-wanted (version))
(help-wanted (help))
(registration-needed => register-repository)
+ (removal => remove-repository)
(#t (list-repositories)))))