diff options
author | Tom Willemse | 2013-05-23 23:05:34 +0200 |
---|---|---|
committer | Tom Willemse | 2013-05-23 23:11:10 +0200 |
commit | 8b3f0d16d339316428b62d3019882a778b3cc1c7 (patch) | |
tree | c10c6c8b2e0be7c61fc6f0c682ddc30e75414941 /gitto/main.scm | |
parent | cd8a7c310ceb386b40b4cec74d527b49acb9fd3f (diff) | |
download | gitto-8b3f0d16d339316428b62d3019882a778b3cc1c7.tar.gz gitto-8b3f0d16d339316428b62d3019882a778b3cc1c7.zip |
Ask to merge settings when registering repo
The `add' command will ask the user if they would like to merge their
settings with the newly registered repository's if the current input
is a tty and if the user has specified some settings.
The default for this is `#t', so pressing <RET> when presented with
this question will merge the settings, however if the user is never
asked (because the input is not a tty) no merge will happen.
Diffstat (limited to 'gitto/main.scm')
-rw-r--r-- | gitto/main.scm | 31 |
1 files changed, 21 insertions, 10 deletions
diff --git a/gitto/main.scm b/gitto/main.scm index d6ca4c0..c162a10 100644 --- a/gitto/main.scm +++ b/gitto/main.scm @@ -21,6 +21,7 @@ #:use-module (gitto config) #:use-module (gitto git) #:use-module (gitto path) + #:use-module (gitto ui) #:use-module (ice-9 format) #:use-module (ice-9 popen) #:use-module (oop goops) @@ -106,8 +107,17 @@ gitto [command [arguments ...]] (begin (set! repositories (append `(,repository) repositories)) (save-repositories-list) - (simple-format #t "Repository ~A registered." - (repo-name repository))) + (simple-format #t "Repository ~A registered.~%" + (repo-name repository)) + + ;; Ask the user if they would like to merge their config + ;; template with the newly registered repository if they have + ;; a configuration set-up and the current input port is a tty. + (when (and (isatty? (current-input-port)) + (not (eq? global-config '())) + (y-or-n? "Would you like to merge your settings?" + #:default #t)) + (update-repo-config repository))) (display "Repository already registered.")) (newline)) (set! command-list (append command-list @@ -173,15 +183,16 @@ gitto [command [arguments ...]] ((equal? (car args) "update") (update-config)))) (set! command-list (append command-list `(("config" . ,show-config)))) +(define (update-repo-config repo) + (unless (member (repo-name repo) config-exclusion-list) + (write-config + (merge-config (repo-name repo) + (read-config (repo-location repo)) + global-config) + (string-append (repo-location repo) "/.git/config")))) + (define (update-config) - (for-each (lambda (repo) - (unless (member (repo-name repo) config-exclusion-list) - (write-config - (merge-config (repo-name repo) - (read-config (repo-location repo)) - global-config) - (string-append (repo-location repo) "/.git/config")))) - repositories)) + (for-each update-repo-config repositories)) (define (main args) "Parse the command line options and run the appropriate functions." |