diff options
author | Ludovic Courtès <ludo@gnu.org> | 2021-05-28 10:53:49 +0200 |
---|---|---|
committer | Ludovic Courtès <ludo@gnu.org> | 2021-05-28 11:36:02 +0200 |
commit | 681af1fb78a735b51dc811aed770b2948212c3fc (patch) | |
tree | 9c033b89bb1865362b0329c679eb01a677ed9499 /guix | |
parent | 7243a8c7ecf1421183d01cbd4631191a861376a4 (diff) |
scripts: Commands warn when passed zero arguments.
This is a followup to 3f8326237df780404c172ef4127195cc20becd66.
* 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.
Diffstat (limited to 'guix')
-rw-r--r-- | guix/scripts/archive.scm | 3 | ||||
-rw-r--r-- | guix/scripts/build.scm | 3 | ||||
-rw-r--r-- | guix/scripts/copy.scm | 9 | ||||
-rw-r--r-- | guix/scripts/edit.scm | 4 | ||||
-rw-r--r-- | guix/scripts/environment.scm | 3 | ||||
-rw-r--r-- | guix/scripts/graph.scm | 5 | ||||
-rw-r--r-- | guix/scripts/package.scm | 3 |
7 files changed, 27 insertions, 3 deletions
diff --git a/guix/scripts/archive.scm b/guix/scripts/archive.scm index ceac640432..f8678aa5f9 100644 --- a/guix/scripts/archive.scm +++ b/guix/scripts/archive.scm @@ -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?)) diff --git a/guix/scripts/build.scm b/guix/scripts/build.scm index 2decdb45ed..f2b8ca135e 100644 --- a/guix/scripts/build.scm +++ b/guix/scripts/build.scm @@ -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 diff --git a/guix/scripts/copy.scm b/guix/scripts/copy.scm index 52b476db54..07357af420 100644 --- a/guix/scripts/copy.scm +++ b/guix/scripts/copy.scm @@ -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) diff --git a/guix/scripts/edit.scm b/guix/scripts/edit.scm index b4c0507591..a2e1ffb434 100644 --- a/guix/scripts/edit.scm +++ b/guix/scripts/edit.scm @@ -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 () diff --git a/guix/scripts/environment.scm b/guix/scripts/environment.scm index 0360761683..5ceb86f7a9 100644 --- a/guix/scripts/environment.scm +++ b/guix/scripts/environment.scm @@ -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. diff --git a/guix/scripts/graph.scm b/guix/scripts/graph.scm index ddfc6ba497..66de824ef4 100644 --- a/guix/scripts/graph.scm +++ b/guix/scripts/graph.scm @@ -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)) diff --git a/guix/scripts/package.scm b/guix/scripts/package.scm index e3d40d5142..52e9961a42 100644 --- a/guix/scripts/package.scm +++ b/guix/scripts/package.scm @@ -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. |