aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLudovic Courtès <ludo@gnu.org>2020-07-25 18:37:30 +0200
committerLudovic Courtès <ludo@gnu.org>2020-07-25 19:11:37 +0200
commit9a6322774db5739f22342e22abc9385479b88ba5 (patch)
tree3b7359e4a155c59d2757b5a1d401b055359d965c
parentd51bfe242fbe6f3f8f71d723e8fe0c7bbe711ba1 (diff)
downloadguix-9a6322774db5739f22342e22abc9385479b88ba5.tar.gz
guix-9a6322774db5739f22342e22abc9385479b88ba5.zip
guix system: Report file system errors using 'report-error'.
* guix/scripts/system.scm (check-file-system-availability)[file-system-location*]: Return a <location> record instead of a string. [error]: Use 'report-error' instead of 'format'. Change callers accordingly.
-rw-r--r--guix/scripts/system.scm23
1 files changed, 11 insertions, 12 deletions
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index 79bfcd7db2..bfd50c7a79 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -565,16 +565,14 @@ any, are available. Raise an error if they're not."
(define fail? #f)
(define (file-system-location* fs)
- (location->string
- (source-properties->location
- (file-system-location fs))))
+ (and=> (file-system-location fs)
+ source-properties->location))
(let-syntax ((error (syntax-rules ()
((_ args ...)
(begin
(set! fail? #t)
- (format (current-error-port)
- args ...))))))
+ (report-error args ...))))))
(for-each (lambda (fs)
(catch 'system-error
(lambda ()
@@ -582,9 +580,9 @@ any, are available. Raise an error if they're not."
(lambda args
(let ((errno (system-error-errno args))
(device (file-system-device fs)))
- (error (G_ "~a: error: device '~a' not found: ~a~%")
- (file-system-location* fs) device
- (strerror errno))
+ (error (file-system-location* fs)
+ (G_ "device '~a' not found: ~a~%")
+ device (strerror errno))
(unless (string-prefix? "/" device)
(display-hint (format #f (G_ "If '~a' is a file system
label, write @code{(file-system-label ~s)} in your @code{device} field.")
@@ -594,13 +592,14 @@ label, write @code{(file-system-label ~s)} in your @code{device} field.")
(let ((label (file-system-label->string
(file-system-device fs))))
(unless (find-partition-by-label label)
- (error (G_ "~a: error: file system with label '~a' not found~%")
- (file-system-location* fs) label))))
+ (error (file-system-location* fs)
+ (G_ "file system with label '~a' not found~%")
+ label))))
labeled)
(for-each (lambda (fs)
(unless (find-partition-by-uuid (file-system-device fs))
- (error (G_ "~a: error: file system with UUID '~a' not found~%")
- (file-system-location* fs)
+ (error (file-system-location* fs)
+ (G_ "file system with UUID '~a' not found~%")
(uuid->string (file-system-device fs)))))
uuid)