activation: Honor $GUIX_NEW_SYSTEM for use by 'guix system reconfigure'.
* gnu/build/activation.scm (activate-current-system): Honor $GUIX_NEW_SYSTEM by default. * guix/scripts/system.scm (switch-to-system): Set $GUIX_NEW_SYSTEM before loading SCRIPT.
This commit is contained in:
parent
ddfc2fd8e0
commit
6d49355d8b
@ -236,8 +236,13 @@ copy SOURCE to TARGET."
|
||||
"Return the '--system' argument passed on the kernel command line."
|
||||
(find-long-option "--system" (linux-command-line)))
|
||||
|
||||
(define* (activate-current-system #:optional (system (boot-time-system)))
|
||||
(define* (activate-current-system
|
||||
#:optional (system (or (getenv "GUIX_NEW_SYSTEM")
|
||||
(boot-time-system))))
|
||||
"Atomically make SYSTEM the current system."
|
||||
;; The 'GUIX_NEW_SYSTEM' environment variable is used as a way for 'guix
|
||||
;; system reconfigure' to pass the file name of the new system.
|
||||
|
||||
(format #t "making '~a' the current system...~%" system)
|
||||
|
||||
;; Atomically make SYSTEM current.
|
||||
|
@ -199,6 +199,9 @@ it atomically, and then run OS's activation script."
|
||||
;; The activation script may change $PATH, among others, so protect
|
||||
;; against that.
|
||||
(return (save-environment-excursion
|
||||
;; Tell 'activate-current-system' what the new system is.
|
||||
(setenv "GUIX_NEW_SYSTEM" system)
|
||||
|
||||
(primitive-load (derivation->output-path script))))
|
||||
|
||||
;; TODO: Run 'deco reload ...'.
|
||||
|
Loading…
Reference in New Issue
Block a user