diff options
author | Ludovic Courtès <ludo@gnu.org> | 2015-02-05 23:36:23 +0100 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2015-02-05 23:40:55 +0100 |
commit | 353e34a626a43f2fc4e278373b90b9e43a45082f (patch) | |
tree | 77860aa7bbce3e2b5fb4e68ecb99d825853972c8 | |
parent | 7d157c652cf90459dcce51c2c98985683e5359c4 (diff) | |
download | guix-353e34a626a43f2fc4e278373b90b9e43a45082f.tar guix-353e34a626a43f2fc4e278373b90b9e43a45082f.tar.gz |
offload: Better report failure to create the GC root directory.
Suggested by Ricardo Wurmus <ricardo.wurmus@mdc-berlin.de>.
* guix/scripts/offload.scm (register-gc-root)[script]: Replace
'false-if-exception' with a finer-grain 'system-error handler.
Provide the name of MACHINE in 'leave' error message.
-rw-r--r-- | guix/scripts/offload.scm | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/guix/scripts/offload.scm b/guix/scripts/offload.scm index e494500d56..e65125741f 100644 --- a/guix/scripts/offload.scm +++ b/guix/scripts/offload.scm @@ -310,7 +310,14 @@ hook." ;; directory. (let ((root-directory (string-append %state-directory "/gcroots/tmp"))) - (false-if-exception (mkdir root-directory)) + (catch 'system-error + (lambda () + (mkdir root-directory)) + (lambda args + (unless (= EEXIST (system-error-errno args)) + (error "failed to create remote GC root directory" + root-directory (system-error-errno args))))) + (catch 'system-error (lambda () (symlink ,file @@ -331,7 +338,7 @@ hook." ;; Better be safe than sorry: if we ignore the error here, then FILE ;; may be GC'd just before we start using it. (leave (_ "failed to register GC root for '~a' on '~a' (status: ~a)~%") - file machine status))))) + file (build-machine-name machine) status))))) (define (remove-gc-roots machine) "Remove from MACHINE the GC roots previously installed with |