aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2019-11-15 21:11:58 +0100
committerLudovic Courtès <ludo@gnu.org>2019-11-15 23:29:06 +0100
commitd17e012da7b41165cb49a5604a773459736144e3 (patch)
treecd7b42134b97d37c6d0dc86ba009a16d5e455b27
parent067305977c4580c71c579b098af1e9dee85ce10a (diff)
downloadguix-d17e012da7b41165cb49a5604a773459736144e3.tar
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.scm1
-rw-r--r--guix/scripts/time-machine.scm20
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))))))))