scripts: home: Move ensure-profile-directory to a better place.

The profile directory is usually created by daemon, when user opens a
connection.  Ideally, we would like to remove ensure-profile-directory call at
all, but daemon doesn't handle case with custom $GUIX_STATE_DIRECTORY yet.
More information in: <https://issues.guix.gnu.org/61717>

* guix/scripts/home.scm (process-action): Move ensure-profile-directory call
to the place, where connection to the daemon is already open.

Reported-by: wolf <wolf@wolfsden.cz>
This commit is contained in:
Andrew Tropin 2023-02-24 16:04:33 +04:00
parent e36ac71551
commit e615aaca28
No known key found for this signature in database
GPG key ID: 2208D20958C1DEB0

View file

@ -1,5 +1,5 @@
;;; GNU Guix --- Functional package management for GNU ;;; GNU Guix --- Functional package management for GNU
;;; Copyright © 2021 Andrew Tropin <andrew@trop.in> ;;; Copyright © 2021, 2023 Andrew Tropin <andrew@trop.in>
;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz> ;;; Copyright © 2021 Xinglu Chen <public@yoctocell.xyz>
;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com> ;;; Copyright © 2021 Pierre Langlois <pierre.langlois@gmx.com>
;;; Copyright © 2021 Oleg Pykhalov <go.wigust@gmail.com> ;;; Copyright © 2021 Oleg Pykhalov <go.wigust@gmail.com>
@ -409,6 +409,7 @@ immediately. Return the exit status of the process in the container."
network?) network?)
"Perform ACTION for home environment. " "Perform ACTION for home environment. "
(ensure-profile-directory)
(define println (define println
(cut format #t "~a~%" <>)) (cut format #t "~a~%" <>))
@ -473,7 +474,6 @@ ACTION must be one of the sub-commands that takes a home environment
declaration as an argument (a file name.) OPTS is the raw alist of options declaration as an argument (a file name.) OPTS is the raw alist of options
resulting from command-line parsing." resulting from command-line parsing."
(define (ensure-home-environment file-or-exp obj) (define (ensure-home-environment file-or-exp obj)
(ensure-profile-directory)
(unless (home-environment? obj) (unless (home-environment? obj)
(leave (G_ "'~a' does not return a home environment~%") (leave (G_ "'~a' does not return a home environment~%")
file-or-exp)) file-or-exp))