diff options
author | Ludovic Courtès <ludo@gnu.org> | 2019-11-15 21:11:58 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2019-11-15 23:29:06 +0100 |
commit | d17e012da7b41165cb49a5604a773459736144e3 (patch) | |
tree | cd7b42134b97d37c6d0dc86ba009a16d5e455b27 | |
parent | 067305977c4580c71c579b098af1e9dee85ce10a (diff) | |
download | guix-d17e012da7b41165cb49a5604a773459736144e3.tar.gz |
time-machine: Handle 'git-error' exceptions.
* guix/scripts/pull.scm (with-git-error-handling): Export. * guix/scripts/time-machine.scm (guix-time-machine): Wrap body in 'with-git-error-handling'.
-rw-r--r-- | guix/scripts/pull.scm | 1 | ||||
-rw-r--r-- | guix/scripts/time-machine.scm | 20 |
2 files changed, 12 insertions, 9 deletions
diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index c42794dbcb..0ab688ac24 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -57,6 +57,7 @@ #:use-module (ice-9 format) #:export (display-profile-content channel-list + with-git-error-handling guix-pull)) diff --git a/guix/scripts/time-machine.scm b/guix/scripts/time-machine.scm index a64badc27b..946b523741 100644 --- a/guix/scripts/time-machine.scm +++ b/guix/scripts/time-machine.scm @@ -22,7 +22,8 @@ #:use-module (guix inferior) #:use-module (guix channels) #:use-module (guix store) - #:use-module ((guix scripts pull) #:select (channel-list)) + #:use-module ((guix scripts pull) + #:select (with-git-error-handling channel-list)) #:use-module (ice-9 match) #:use-module (srfi srfi-1) #:use-module (srfi srfi-11) @@ -94,11 +95,12 @@ Execute COMMAND ARGS... in an older version of Guix.\n")) (define (guix-time-machine . args) (with-error-handling - (let* ((opts (parse-args args)) - (channels (channel-list opts)) - (command-line (assoc-ref opts 'exec))) - (when command-line - (let* ((directory (with-store store - (cached-channel-instance store channels))) - (executable (string-append directory "/bin/guix"))) - (apply execl (cons* executable executable command-line))))))) + (with-git-error-handling + (let* ((opts (parse-args args)) + (channels (channel-list opts)) + (command-line (assoc-ref opts 'exec))) + (when command-line + (let* ((directory (with-store store + (cached-channel-instance store channels))) + (executable (string-append directory "/bin/guix"))) + (apply execl (cons* executable executable command-line)))))))) |