scripts: Commands warn when passed zero arguments.
This is a followup to 3f8326237d
.
* guix/scripts/archive.scm (export-from-store): Warn then FILES is
empty.
* guix/scripts/build.scm (guix-build): Likewise.
* guix/scripts/copy.scm (warn-if-empty): New procedure.
(send-to-remote-host, retrieve-from-remote-host): Call it.
* guix/scripts/edit.scm (guix-edit): Warn when SPECS is empty.
* guix/scripts/environment.scm (guix-environment): Warn when MANIFEST
has zero entries.
* guix/scripts/graph.scm (guix-graph): Warn then ITEMS is empty.
* guix/scripts/package.scm (process-actions): Warn when FILES and TRANS
are both empty.
This commit is contained in:
parent
7243a8c7ec
commit
681af1fb78
@ -260,6 +260,9 @@ build and a list of store files to transfer."
|
||||
resulting archive to the standard output port."
|
||||
(let-values (((drv files)
|
||||
(options->derivations+files store opts)))
|
||||
(when (null? files)
|
||||
(warning (G_ "no arguments specified; creating an empty archive~%")))
|
||||
|
||||
(if (build-derivations store drv)
|
||||
(export-paths store files (current-output-port)
|
||||
#:recursive? (assoc-ref opts 'export-recursive?))
|
||||
|
@ -679,6 +679,9 @@ needed."
|
||||
(_ #f))
|
||||
opts)))
|
||||
|
||||
(when (null? items)
|
||||
(warning (G_ "no arguments specified, nothing to build~%")))
|
||||
|
||||
(cond ((assoc-ref opts 'log-file?)
|
||||
;; Pass 'show-build-log' the output file names, not the
|
||||
;; derivation file names, because there can be several
|
||||
|
@ -62,6 +62,10 @@ number (or #f) corresponding to SPEC."
|
||||
(x
|
||||
(leave (G_ "~a: invalid SSH specification~%") spec))))
|
||||
|
||||
(define (warn-if-empty items)
|
||||
(when (null? items)
|
||||
(warning (G_ "no arguments specified, nothing to copy~%"))))
|
||||
|
||||
(define (send-to-remote-host local target opts)
|
||||
"Send ITEMS to TARGET. ITEMS is a list of store items or package names; for ;
|
||||
package names, build the underlying packages before sending them."
|
||||
@ -69,6 +73,7 @@ package names, build the underlying packages before sending them."
|
||||
(ssh-spec->user+host+port target))
|
||||
((drv items)
|
||||
(options->derivations+files local opts)))
|
||||
(warn-if-empty items)
|
||||
(and (build-derivations local drv)
|
||||
(let* ((session (open-ssh-session host #:user user
|
||||
#:port (or port 22)))
|
||||
@ -94,7 +99,9 @@ package names, build the underlying packages before sending them."
|
||||
(let*-values (((drv items)
|
||||
(options->derivations+files local opts))
|
||||
((retrieved)
|
||||
(retrieve-files local items remote #:recursive? #t)))
|
||||
(begin
|
||||
(warn-if-empty items)
|
||||
(retrieve-files local items remote #:recursive? #t))))
|
||||
(close-connection remote)
|
||||
(disconnect! session)
|
||||
(format #t "~{~a~%~}" retrieved)
|
||||
|
@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2015, 2016, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015, 2016, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015 Mathieu Lirzin <mthl@gnu.org>
|
||||
;;; Copyright © 2020, 2021 Simon Tournier <zimon.toutoune@gmail.com>
|
||||
;;;
|
||||
@ -91,6 +91,8 @@ line."
|
||||
(with-error-handling
|
||||
(let* ((specs (reverse (parse-arguments)))
|
||||
(locations (map specification->location specs)))
|
||||
(when (null? specs)
|
||||
(leave (G_ "no packages specified, nothing to edit~%")))
|
||||
|
||||
(catch 'system-error
|
||||
(lambda ()
|
||||
|
@ -755,6 +755,9 @@ message if any test fails."
|
||||
(> (length (manifest-entries manifest-from-opts)) 0))
|
||||
(leave (G_ "'--profile' cannot be used with package options~%")))
|
||||
|
||||
(when (null? (manifest-entries manifest))
|
||||
(warning (G_ "no packages specified; creating an empty environment~%")))
|
||||
|
||||
(set-build-options-from-command-line store opts)
|
||||
|
||||
;; Use the bootstrap Guile when requested.
|
||||
|
@ -1,5 +1,5 @@
|
||||
;;; GNU Guix --- Functional package management for GNU
|
||||
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2015, 2016, 2017, 2018, 2019, 2020, 2021 Ludovic Courtès <ludo@gnu.org>
|
||||
;;; Copyright © 2019 Simon Tournier <zimon.toutoune@gmail.com>
|
||||
;;;
|
||||
;;; This file is part of GNU Guix.
|
||||
@ -593,6 +593,9 @@ Emit a representation of the dependency graph of PACKAGE...\n"))
|
||||
(read/eval-package-expression exp)))
|
||||
(_ #f))
|
||||
opts)))
|
||||
(when (null? items)
|
||||
(warning (G_ "no arguments specified; creating an empty graph~%")))
|
||||
|
||||
(run-with-store store
|
||||
;; XXX: Since grafting can trigger unsolicited builds, disable it.
|
||||
(mlet %store-monad ((_ (set-grafting #f))
|
||||
|
@ -1044,6 +1044,9 @@ processed, #f otherwise."
|
||||
|
||||
(warn-about-old-distro)
|
||||
|
||||
(when (and (null? files) (manifest-transaction-null? trans))
|
||||
(warning (G_ "missing arguments, nothing to do~%")))
|
||||
|
||||
(unless (manifest-transaction-null? trans)
|
||||
;; When '--manifest' is used, display information about TRANS as if we
|
||||
;; were starting from an empty profile.
|
||||
|
Loading…
Reference in New Issue
Block a user