~ruther/guix-local

db1a1dc0b2eec26c36516f97102125878c2ff163 — Tomas Volf 2 years ago 56632b0
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>
2 files changed, 28 insertions(+), 21 deletions(-)

M doc/guix.texi
M guix/scripts/time-machine.scm
M doc/guix.texi => doc/guix.texi +5 -0
@@ 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


M guix/scripts/time-machine.scm => guix/scripts/time-machine.scm +23 -21
@@ 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)))))))