From 4d60610ad7929f5745afec36bd856434cc825bd9 Mon Sep 17 00:00:00 2001 From: Ludovic Courtès Date: Fri, 22 Feb 2013 21:08:06 +0100 Subject: 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. --- guix/scripts/pull.scm | 20 ++++++++++++-------- guix/ui.scm | 6 ++++-- 2 files changed, 16 insertions(+), 10 deletions(-) (limited to 'guix') diff --git a/guix/scripts/pull.scm b/guix/scripts/pull.scm index 42ff525524..942bf501c5 100644 --- a/guix/scripts/pull.scm +++ b/guix/scripts/pull.scm @@ -216,12 +216,16 @@ (define (parse-options) ((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)))))))) diff --git a/guix/ui.scm b/guix/ui.scm index 7d1ea2bcbd..7e0c61b4f8 100644 --- a/guix/ui.scm +++ b/guix/ui.scm @@ -118,7 +118,8 @@ (define (call-with-error-handling thunk) (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 @@ (define* (show-what-to-build store drv #:optional dry-run?) (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 () -- cgit v1.2.3