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/ui.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/ui.scm')
-rw-r--r-- | gitto/ui.scm | 37 |
1 files changed, 37 insertions, 0 deletions
diff --git a/gitto/ui.scm b/gitto/ui.scm new file mode 100644 index 0000000..fffe080 --- /dev/null +++ b/gitto/ui.scm @@ -0,0 +1,37 @@ +;; gitto -- Keep track of your git repositories +;; Copyright (C) 2012 Tom Willemse <tom at ryuslash dot org> + +;; This file is part of gitto. + +;; gitto is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; gitto is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with gitto. If not, see <http://www.gnu.org/licenses/>. + +(define-module (gitto ui) + #:use-module (ice-9 rdelim) + #:export (y-or-n?)) + +(define* (y-or-n? prompt #:key (default #f)) + (format #t "~a [~a] " prompt (if default "Y/n" "y/N")) + (let ((char (read-char))) + + ;; Clear the rest of the input buffer. + (unless (eq? char #\newline) + (read-line)) + + (case char + ((#\y #\Y #\newline) #t) + ((#\n #\N) #f) + (else + (display "Invalid response, please use `y' or `n'.") + (newline) + (y-or-n? prompt #:default default))))) |