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.
This commit is contained in:
Ludovic Courtès 2013-02-22 21:08:06 +01:00
parent 7b50c68455
commit 4d60610ad7
2 changed files with 16 additions and 10 deletions

View File

@ -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))))))))

View File

@ -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 ()