diff options
author | Ludovic Courtès <ludo@gnu.org> | 2017-05-12 22:39:33 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2017-05-13 00:03:46 +0200 |
commit | e06ca952ed150c50109b1a29cd0e3645a80023a2 (patch) | |
tree | 03e0d146be46cdc249c1d04a5a2d16c194112819 | |
parent | 0be9b4a9c18502ddd9fc56612e076121958be2ef (diff) | |
download | guix-e06ca952ed150c50109b1a29cd0e3645a80023a2.tar.gz |
scripts: Do not create the config directory.
This fixes runs of 'guix package' and 'guix system' tests in environments where $HOME is read-only. * guix/ui.scm (config-directory): Add #:ensure? parameter and honor it. * guix/scripts.scm (warn-about-old-distro): Pass #:ensure? #f to 'config-directory'.
-rw-r--r-- | guix/scripts.scm | 3 | ||||
-rw-r--r-- | guix/ui.scm | 7 |
2 files changed, 6 insertions, 4 deletions
diff --git a/guix/scripts.scm b/guix/scripts.scm index d5c53dea1b..9ff7f25548 100644 --- a/guix/scripts.scm +++ b/guix/scripts.scm @@ -165,7 +165,8 @@ Show what and how will/would be built." (define age (match (false-if-not-found - (lstat (string-append (config-directory) "/latest"))) + (lstat (string-append (config-directory #:ensure? #f) + "/latest"))) (#f #f) (stat (- (time-second (current-time time-utc)) (stat:mtime stat))))) diff --git a/guix/ui.scm b/guix/ui.scm index e7cb40927b..edd04daa81 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -775,9 +775,9 @@ replacement if PORT is not Unicode-capable." (($ <location> file line column) (format #f "~a:~a:~a" file line column)))) -(define (config-directory) +(define* (config-directory #:key (ensure? #t)) "Return the name of the configuration directory, after making sure that it -exists. Honor the XDG specs, +exists if ENSURE? is true. Honor the XDG specs, <http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html>." (let ((dir (and=> (or (getenv "XDG_CONFIG_HOME") (and=> (getenv "HOME") @@ -785,7 +785,8 @@ exists. Honor the XDG specs, (cut string-append <> "/guix")))) (catch 'system-error (lambda () - (mkdir-p dir) + (when ensure? + (mkdir-p dir)) dir) (lambda args (let ((err (system-error-errno args))) |