guix-commits
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

03/10: scripts: Commands warn when passed zero arguments.


From: guix-commits
Subject: 03/10: scripts: Commands warn when passed zero arguments.
Date: Fri, 28 May 2021 05:36:57 -0400 (EDT)

civodul pushed a commit to branch master
in repository guix.

commit 681af1fb78a735b51dc811aed770b2948212c3fc
Author: Ludovic Courtès <ludo@gnu.org>
AuthorDate: Fri May 28 10:53:49 2021 +0200

    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.
---
 guix/scripts/archive.scm     | 3 +++
 guix/scripts/build.scm       | 3 +++
 guix/scripts/copy.scm        | 9 ++++++++-
 guix/scripts/edit.scm        | 4 +++-
 guix/scripts/environment.scm | 3 +++
 guix/scripts/graph.scm       | 5 ++++-
 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 ceac640..f8678aa 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 2decdb4..f2b8ca1 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 52b476d..07357af 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 b4c0507..a2e1ffb 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 0360761..5ceb86f 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 ddfc6ba..66de824 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 e3d40d5..52e9961 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.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]