~ruther/guix-local

4d60610ad7929f5745afec36bd856434cc825bd9 — Ludovic Courtès 13 years ago 7b50c68
pull: Distinguish "already up to date" from "updated".

* guix/ui.scm (show-what-to-build): Return (length req*).
* guix/scripts/pull.scm (guix-pull): Print an "already up to date"
  message when there's nothing to build.
2 files changed, 16 insertions(+), 10 deletions(-)

M guix/scripts/pull.scm
M guix/ui.scm
M guix/scripts/pull.scm => guix/scripts/pull.scm +12 -8
@@ 216,12 216,16 @@ Download and deploy the latest version of Guix.\n"))
                        ((source-dir)
                         (derivation-output-path
                          (assoc-ref (derivation-outputs drv) "out"))))
            (show-what-to-build store (list source))
            (if (build-derivations store (list source))
                (let ((latest (string-append config-dir "/latest")))
                  (add-indirect-root store latest)
                  (switch-symlinks latest source-dir)
                  (format #t
                          (_ "updated ~a successfully deployed under `~a'~%")
                          %guix-package-name latest)
            (if (show-what-to-build store (list source))
                (if (build-derivations store (list source))
                    (let ((latest (string-append config-dir "/latest")))
                      (add-indirect-root store latest)
                      (switch-symlinks latest source-dir)
                      (format #t
                              (_ "updated ~a successfully deployed under `~a'~%")
                              %guix-package-name latest)
                      #t)
                    (leave (_ "failed to update Guix, check the build log~%")))
                (begin
                  (display (_ "Guix already up to date\n"))
                  #t))))))))

M guix/ui.scm => guix/ui.scm +4 -2
@@ 118,7 118,8 @@ General help using GNU software: <http://www.gnu.org/gethelp/>"))

(define* (show-what-to-build store drv #:optional dry-run?)
  "Show what will or would (depending on DRY-RUN?) be built in realizing the
derivations listed in DRV."
derivations listed in DRV.  Return #t if there's something to build, #f
otherwise."
  (let* ((req  (append-map (lambda (drv-path)
                             (let ((d (call-with-input-file drv-path
                                        read-derivation)))


@@ 140,7 141,8 @@ derivations listed in DRV."
                (N_ "~:[the following derivation will be built:~%~{   ~a~%~}~;~]"
                    "~:[the following derivations will be built:~%~{    ~a~%~}~;~]"
                    (length req*))
                (null? req*) req*))))
                (null? req*) req*))
    (pair? req*)))

(define-syntax with-error-handling
  (syntax-rules ()