diff options
author | Tomas Volf <~@wolfsden.cz> | 2024-10-06 15:23:07 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2024-10-07 12:51:23 +0200 |
commit | db1a1dc0b2eec26c36516f97102125878c2ff163 (patch) | |
tree | 6836f1ea5f184537667c11b36c3693cde637bf84 | |
parent | 56632b081f363555a147595415f3381a54132152 (diff) |
time-machine: Print profile path if no command is given.
Instead of warning, print the profile path of the cached-channel-instance.
* guix/scripts/time-machine.scm (guix-time-machine)[not command-line]: Print
the profile directory.
(show-help): Adjust usage message.
* doc/guix.texi (Invoking guix time-machine): Document it.
Change-Id: Id2c1ded514e6c5af45af9008ad1ef91beb509177
Signed-off-by: Ludovic Courtès <ludo@gnu.org>
-rw-r--r-- | doc/guix.texi | 5 | ||||
-rw-r--r-- | guix/scripts/time-machine.scm | 44 |
2 files changed, 28 insertions, 21 deletions
diff --git a/doc/guix.texi b/doc/guix.texi index 3ae39ebcd9..4aafcf9cc0 100644 --- a/doc/guix.texi +++ b/doc/guix.texi @@ -4762,6 +4762,11 @@ Note that @command{guix time-machine} can trigger builds of channels and their dependencies, and these are controlled by the standard build options (@pxref{Common Build Options}). +If @command{guix time-machine} is executed without any command, it +prints the file name of the profile that would be used to execute the +command. This is sometimes useful if you need to get store file name of +the profile---e.g., when you want to @command{guix copy} it. + @node Inferiors @section Inferiors diff --git a/guix/scripts/time-machine.scm b/guix/scripts/time-machine.scm index d9ce85df84..21145239d4 100644 --- a/guix/scripts/time-machine.scm +++ b/guix/scripts/time-machine.scm @@ -52,8 +52,10 @@ ;;; (define (show-help) - (display (G_ "Usage: guix time-machine [OPTION] -- COMMAND ARGS... -Execute COMMAND ARGS... in an older version of Guix.\n")) + (display (G_ "Usage: guix time-machine [OPTION] [-- COMMAND ARGS...] +Execute COMMAND ARGS... in an older version of Guix. + +If COMMAND is not provided, print path to the time-machine profile.\n")) (display (G_ " -C, --channels=FILE deploy the channels defined in FILE")) (display (G_ " @@ -179,22 +181,22 @@ to %OLDEST-POSSIBLE-COMMIT is not that of an ancestor." (ref (assoc-ref opts 'ref)) (substitutes? (assoc-ref opts 'substitutes?)) (authenticate? (assoc-ref opts 'authenticate-channels?))) - (if command-line - (let* ((directory - (with-store store - (with-status-verbosity (assoc-ref opts 'verbosity) - (with-build-handler (build-notifier #:use-substitutes? - substitutes? - #:verbosity - (assoc-ref opts 'verbosity) - #:dry-run? #f) - (set-build-options-from-command-line store opts) - (cached-channel-instance store channels - #:authenticate? authenticate? - #:reference-channels - %reference-channels - #:validate-channels - validate-guix-channel))))) - (executable (string-append directory "/bin/guix"))) - (apply execl (cons* executable executable command-line))) - (warning (G_ "no command specified; nothing to do~%"))))))) + (let* ((directory + (with-store store + (with-status-verbosity (assoc-ref opts 'verbosity) + (with-build-handler (build-notifier #:use-substitutes? + substitutes? + #:verbosity + (assoc-ref opts 'verbosity) + #:dry-run? #f) + (set-build-options-from-command-line store opts) + (cached-channel-instance store channels + #:authenticate? authenticate? + #:reference-channels + %reference-channels + #:validate-channels + validate-guix-channel))))) + (executable (string-append directory "/bin/guix"))) + (if command-line + (apply execl (cons* executable executable command-line)) + (format #t "~a\n" directory))))))) |