~ruther/guix-local

cdd5d6f95f416078509bce509b25c7c854da34a2 — Ludovic Courtès 13 years ago 00e219d
ui: Factorize `--version'.

* guix/ui.scm (show-version-and-exit): New procedure.
* guix-build.in (show-version): Remove.
  (%options)["version"]: Use `show-version-and-exit'.
* guix-download.in: Likewise.
* guix-package.in: Likewise.
4 files changed, 12 insertions(+), 15 deletions(-)

M guix-build.in
M guix-download.in
M guix-package.in
M guix/ui.scm
M guix-build.in => guix-build.in +1 -5
@@ 71,9 71,6 @@ When SOURCE? is true, return the derivations of the package sources."
  `((system . ,(%current-system))
    (substitutes? . #t)))

(define (show-version)
  (display "guix-build (@PACKAGE_NAME@) @PACKAGE_VERSION@\n"))

(define (show-help)
  (display (_ "Usage: guix-build [OPTION]... PACKAGE-OR-DERIVATION...
Build the given PACKAGE-OR-DERIVATION and return their output paths.\n"))


@@ 113,8 110,7 @@ Report bugs to: ~a.~%") "@PACKAGE_BUGREPORT@"))
                  (exit 0)))
        (option '(#\V "version") #f #f
                (lambda args
                  (show-version)
                  (exit 0)))
                  (show-version-and-exit "guix-build")))

        (option '(#\S "source") #f #f
                (lambda (opt name arg result)

M guix-download.in => guix-download.in +1 -5
@@ 88,9 88,6 @@ exec ${GUILE-@GUILE@} -L "@guilemoduledir@" -l "$0"    \
  ;; Alist of default option values.
  `((format . ,bytevector->nix-base32-string)))

(define (show-version)
  (display "guix-download (@PACKAGE_NAME@) @PACKAGE_VERSION@\n"))

(define (show-help)
  (display (_ "Usage: guix-download [OPTION]... URL
Download the file at URL, add it to the store, and print its store path


@@ 131,8 128,7 @@ Report bugs to: ~a.~%") "@PACKAGE_BUGREPORT@"))
                  (exit 0)))
        (option '(#\V "version") #f #f
                (lambda args
                  (show-version)
                  (exit 0)))))
                  (show-version-and-exit "guix-download")))))


;;;

M guix-package.in => guix-package.in +2 -5
@@ 30,6 30,7 @@ exec ${GUILE-@GUILE@} -L "@guilemoduledir@" -l "$0"    \
;;; along with Guix.  If not, see <http://www.gnu.org/licenses/>.

(define-module (guix-package)
  #:use-module (guix ui)
  #:use-module (guix store)
  #:use-module (guix derivations)
  #:use-module (guix packages)


@@ 192,9 193,6 @@ all of PACKAGES, a list of name/version/output/path tuples."
    (format (current-error-port) fmt args ...)
    (exit 1)))

(define (show-version)
  (display "guix-package (@PACKAGE_NAME@) @PACKAGE_VERSION@\n"))

(define (show-help)
  (display (_ "Usage: guix-package [OPTION]... PACKAGES...
Install, remove, or upgrade PACKAGES in a single transaction.\n"))


@@ 228,8 226,7 @@ Report bugs to: ~a.~%") "@PACKAGE_BUGREPORT@"))
                  (exit 0)))
        (option '(#\V "version") #f #f
                (lambda args
                  (show-version)
                  (exit 0)))
                  (show-version-and-exit "guix-package")))

        (option '(#\i "install") #t #f
                (lambda (opt name arg result)

M guix/ui.scm => guix/ui.scm +8 -0
@@ 19,12 19,14 @@
(define-module (guix ui)
  #:use-module (guix utils)
  #:use-module (guix store)
  #:use-module (guix config)
  #:use-module (guix packages)
  #:use-module (srfi srfi-26)
  #:use-module (srfi srfi-34)
  #:export (_
            N_
            leave
            show-version-and-exit
            call-with-error-handling
            with-error-handling))



@@ 46,6 48,12 @@
    (format (current-error-port) fmt args ...)
    (exit 1)))

(define* (show-version-and-exit #:optional (command (car (command-line))))
  "Display version information for COMMAND and `(exit 0)'."
  (simple-format #t "~a (~a) ~a~%"
                 command %guix-package-name %guix-version)
  (exit 0))

(define (call-with-error-handling thunk)
  "Call THUNK within a user-friendly error handler."
  (guard (c ((package-input-error? c)