aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTomas Volf <~@wolfsden.cz>2024-10-06 13:23:07 +0000
committerLudovic Courtès <ludo@gnu.org>2024-10-07 10:51:23 +0000
commitdb1a1dc0b2eec26c36516f97102125878c2ff163 (patch)
tree6836f1ea5f184537667c11b36c3693cde637bf84
parent56632b081f363555a147595415f3381a54132152 (diff)
downloadguix-db1a1dc0b2eec26c36516f97102125878c2ff163.tar
guix-db1a1dc0b2eec26c36516f97102125878c2ff163.tar.gz
guix-db1a1dc0b2eec26c36516f97102125878c2ff163.tar.bz2
guix-db1a1dc0b2eec26c36516f97102125878c2ff163.tar.lz
guix-db1a1dc0b2eec26c36516f97102125878c2ff163.tar.xz
guix-db1a1dc0b2eec26c36516f97102125878c2ff163.tar.zst
guix-db1a1dc0b2eec26c36516f97102125878c2ff163.zip
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.texi5
-rw-r--r--guix/scripts/time-machine.scm44
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)))))))