all messages for Guix-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: m.othacehe@gmail.com
To: 29409@debbugs.gnu.org
Subject: [bug#29409] [PATCH v2 3/4] scripts: system: Add --expression option.
Date: Wed, 13 Dec 2017 12:02:16 +0100	[thread overview]
Message-ID: <1513162937-13145-3-git-send-email-m.othacehe@gmail.com> (raw)
In-Reply-To: <1513162937-13145-1-git-send-email-m.othacehe@gmail.com>

From: Mathieu Othacehe <m.othacehe@gmail.com>

* guix/scripts/system.scm (show-help): Add expression option.
(%options): Ditto.
(process-action): Read operating-system from expression or file.
* Makefile.am (release): Use expression instead of file to produce
disk-images.
* doc/guix.texi (Building the Installation Image): Adapt disk-image command to
  use an expression.
(Invoking guix system): Introduce the expression option.
---
 Makefile.am             |  2 +-
 doc/guix.texi           | 10 +++++++++-
 guix/scripts/system.scm | 24 +++++++++++++++++++-----
 3 files changed, 29 insertions(+), 7 deletions(-)

diff --git a/Makefile.am b/Makefile.am
index 85b9ab3..dff1e5e 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -648,7 +648,7 @@ release: dist
 	    guix system disk-image							\
 	    --file-system-type=iso9660							\
             --system=$$system								\
-	    gnu/system/install.scm` ;							\
+	    -e "(@ (gnu system install) installation-os)"` ;							\
 	  if [ ! -f "$$image" ] ; then							\
 	    echo "failed to produced GuixSD installation image for $$system" >&2 ;	\
 	    exit 1 ;									\
diff --git a/doc/guix.texi b/doc/guix.texi
index 92ac45b..9bdfdf7 100644
--- a/doc/guix.texi
+++ b/doc/guix.texi
@@ -8356,7 +8356,7 @@ The installation image described above was built using the @command{guix
 system} command, specifically:
 
 @example
-guix system disk-image gnu/system/install.scm
+guix system disk-image -e "(@@ (gnu system install) installation-os)"
 @end example
 
 Have a look at @file{gnu/system/install.scm} in the source tree,
@@ -18744,6 +18744,14 @@ Build Options}).  In addition, @var{options} can contain one of the
 following:
 
 @table @option
+@item --expression=@var{expr}
+@itemx -e @var{expr}
+Consider the operating-system @var{expr} evaluates to.
+This is an alternative to specifying a file which evaluates to an
+operating-system.
+This is used to generate the GuixSD installer @pxref{Building the
+Installation Image}).
+
 @item --system=@var{system}
 @itemx -s @var{system}
 Attempt to build for @var{system} instead of the host system type.
diff --git a/guix/scripts/system.scm b/guix/scripts/system.scm
index cbf7e6c..f710db9 100644
--- a/guix/scripts/system.scm
+++ b/guix/scripts/system.scm
@@ -858,6 +858,9 @@ Some ACTIONS support additional ARGS.\n"))
   (display (G_ "
   -d, --derivation       return the derivation of the given system"))
   (display (G_ "
+  -e, --expression=EXPR  consider the operating-system EXPR evaluates to
+                         instead of reading FILE, when applicable"))
+  (display (G_ "
       --on-error=STRATEGY
                          apply STRATEGY when an error occurs while reading FILE"))
   (display (G_ "
@@ -895,6 +898,9 @@ Some ACTIONS support additional ARGS.\n"))
          (option '(#\V "version") #f #f
                  (lambda args
                    (show-version-and-exit "guix system")))
+         (option '(#\e "expression") #t #f
+                 (lambda (opt name arg result)
+                   (alist-cons 'expression arg result)))
          (option '(#\d "derivation") #f #f
                  (lambda (opt name arg result)
                    (alist-cons 'derivations-only? #t result)))
@@ -964,11 +970,19 @@ resulting from command-line parsing."
   (let* ((file        (match args
                         (() #f)
                         ((x . _) x)))
+         (expr        (assoc-ref opts 'expression))
          (system      (assoc-ref opts 'system))
-         (os          (if file
-                          (load* file %user-module
-                                 #:on-error (assoc-ref opts 'on-error))
-                          (leave (G_ "no configuration file specified~%"))))
+         (os          (cond
+                       ((and expr file)
+                        (leave
+                         (G_ "both file and expression cannot be specified~%")))
+                       (expr
+                        (read/eval expr))
+                       (file
+                        (load* file %user-module
+                                    #:on-error (assoc-ref opts 'on-error)))
+                       (else
+                        (leave (G_ "no configuration specified~%")))))
 
          (dry?        (assoc-ref opts 'dry-run?))
          (bootloader? (assoc-ref opts 'install-bootloader?))
@@ -1093,7 +1107,7 @@ argument list and OPTS is the option alist."
 
       (case action
         ((build container vm vm-image disk-image reconfigure)
-         (unless (= count 1)
+         (unless (or (= count 1) (= count 0))
            (fail)))
         ((init)
          (unless (= count 2)
-- 
2.7.4

  parent reply	other threads:[~2017-12-13 11:03 UTC|newest]

Thread overview: 96+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-11-23  9:45 [bug#29409] GuixSD ARM port Mathieu Othacehe
2017-11-23  9:49 ` [bug#29409] [PATCH] linux-libre: Adapt some arm options to match intel conf Mathieu Othacehe
2017-11-23 15:43   ` Ludovic Courtès
2017-11-23 19:09     ` bug#29409: " Mathieu Othacehe
2017-11-25  8:35   ` [bug#29409] " Danny Milosavljevic
2017-11-25 17:22     ` Mathieu Othacehe
2017-11-26  8:16       ` Danny Milosavljevic
2017-11-24 16:49 ` [bug#29409] [PATCH] vm: Use os-defined initrd intead of base-initrd Mathieu Othacehe
2017-11-24 21:36   ` Ludovic Courtès
2017-11-26 12:49     ` Mathieu Othacehe
2017-11-28  9:22 ` [bug#29409] [PATCH] gnu: dtc: Fix build on 32 bits platforms m.othacehe
2017-11-28  9:28 ` [bug#29409] [PATCH] gnu: grub: Disable tests on ARM platforms m.othacehe
2017-11-28 21:00   ` Leo Famulari
2017-11-29 14:03     ` Mathieu Othacehe
2017-11-29 14:20 ` [bug#29409] [PATCH] utils: Add target-arm? procedure m.othacehe
2017-11-29 14:20   ` [bug#29409] [PATCH] system: vm: Do not add EFI partition on ARM system m.othacehe
2017-12-01 20:14     ` Danny Milosavljevic
2017-12-02 12:46       ` Mathieu Othacehe
2017-12-08  9:24       ` Ludovic Courtès
2017-11-30 17:09   ` [bug#29409] [PATCH] utils: Add target-arm? procedure Ludovic Courtès
2017-12-01  9:21     ` Mathieu Othacehe
2017-11-29 17:34 ` [bug#29409] [PATCH] tests: install: Increase extlinux install partition size m.othacehe
2017-11-30 17:12   ` Ludovic Courtès
2017-12-01 13:02     ` Mathieu Othacehe
2017-12-01 14:57       ` Mathieu Othacehe
2017-12-01 16:07         ` Ludovic Courtès
2017-12-02 12:02           ` Mathieu Othacehe
2017-12-02 13:16             ` Mathieu Othacehe
2017-12-02 23:34             ` Ludovic Courtès
2017-12-03 19:31         ` Ludovic Courtès
2017-12-03 21:19           ` Mathieu Othacehe
2017-12-04  8:37             ` Ludovic Courtès
2017-12-04 14:29               ` Mathieu Othacehe
2017-12-04 14:30     ` Mathieu Othacehe
2017-11-30 10:47 ` [bug#29409] [PATCH] build: utils: Introduce dd m.othacehe
2017-12-01 12:47   ` Ludovic Courtès
2017-12-01 13:03     ` Mathieu Othacehe
2017-12-04 14:31     ` Mathieu Othacehe
2017-12-04 14:43       ` Ludovic Courtès
2017-12-04 15:53         ` Mathieu Othacehe
2017-12-04 17:17           ` Ludovic Courtès
2017-12-04 17:27             ` Mathieu Othacehe
2017-12-01 10:38 ` [bug#29409] [PATCH] utils: Add target-arm32? procedure m.othacehe
2017-12-01 10:38   ` [bug#29409] [PATCH] system: vm: Do not add EFI partition on ARM system m.othacehe
2017-12-01 11:01     ` Ludovic Courtès
2017-12-01 12:58       ` Mathieu Othacehe
2017-12-01 10:58   ` [bug#29409] [PATCH] utils: Add target-arm32? procedure Ludovic Courtès
2017-12-04 16:52 ` [bug#29409] [PATCH] build: vm: Use netdev qemu parameter m.othacehe
2017-12-04 18:19   ` Leo Famulari
2017-12-05  8:58     ` Mathieu Othacehe
2017-12-04 17:35 ` [bug#29409] [PATCH] build: vm: Use qemu drive device parameter m.othacehe
2017-12-08  9:38   ` Ludovic Courtès
2017-12-08 10:22     ` Mathieu Othacehe
2017-12-06 12:59 ` [bug#29409] [PATCH 0/4] ARM port m.othacehe
2017-12-06 12:59   ` [bug#29409] [PATCH 1/4] build: vm: Use netdev qemu parameter m.othacehe
2017-12-11 16:32     ` Ludovic Courtès
2017-12-11 17:36       ` Mathieu Othacehe
2017-12-12  9:00         ` Ludovic Courtès
2017-12-06 12:59   ` [bug#29409] [PATCH 2/4] build: vm: Use qemu drive device parameter m.othacehe
2017-12-11 16:33     ` Ludovic Courtès
2017-12-11 16:34     ` Ludovic Courtès
2017-12-06 12:59   ` [bug#29409] [PATCH 3/4] build: vm: Adapt qemu command to ARM m.othacehe
2017-12-11 16:38     ` Ludovic Courtès
2017-12-11 17:41       ` Mathieu Othacehe
2017-12-12  9:03         ` Ludovic Courtès
2017-12-06 12:59   ` [bug#29409] [PATCH 4/4] bootloader: Factorize write-file-on-device m.othacehe
2017-12-11 16:40     ` Ludovic Courtès
2017-12-11 17:41       ` Mathieu Othacehe
2017-12-07  8:52 ` [bug#29409] [PATCH] system: Add BeagleBone Black installer m.othacehe
2017-12-11 16:47   ` Ludovic Courtès
2017-12-11 17:32     ` ng0
2017-12-11 17:57     ` Mathieu Othacehe
2017-12-13 11:02 ` [bug#29409] [PATCH v2 1/4] vm: Adapt qemu command to ARM m.othacehe
2017-12-13 11:02   ` [bug#29409] [PATCH v2 2/4] bootloader: Factorize write-file-on-device m.othacehe
2017-12-15 10:34     ` Ludovic Courtès
2017-12-15 10:53       ` Mathieu Othacehe
2017-12-13 11:02   ` m.othacehe [this message]
2017-12-15 10:39     ` [bug#29409] [PATCH v2 3/4] scripts: system: Add --expression option Ludovic Courtès
2017-12-15 11:18       ` Mathieu Othacehe
2017-12-15 14:03         ` Ludovic Courtès
2017-12-15 15:38           ` Mathieu Othacehe
2017-12-13 11:02   ` [bug#29409] [PATCH v2 4/4] system: Add BeagleBone Black installer m.othacehe
2017-12-15 10:40     ` Ludovic Courtès
2017-12-15 10:33   ` [bug#29409] [PATCH v2 1/4] vm: Adapt qemu command to ARM Ludovic Courtès
2017-12-15 10:45     ` Mathieu Othacehe
2017-12-18 13:56 ` [bug#29409] [PATCH] system: examples: Add a template for BeagleBone Black m.othacehe
2017-12-18 14:22   ` Ludovic Courtès
2017-12-18 14:29     ` Mathieu Othacehe
2017-12-20 19:15 ` [bug#29409] Remove hugetlb control group on ARM32 Mathieu Othacehe
2017-12-21  1:16   ` Tobias Geerinckx-Rice
2017-12-21 10:07     ` Ludovic Courtès
2017-12-21  8:57   ` Danny Milosavljevic
2017-12-21 15:52     ` Ludovic Courtès
2017-12-22  7:54       ` Mathieu Othacehe
2017-12-22 10:50         ` Ludovic Courtès
2017-12-22 14:28           ` Mathieu Othacehe

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1513162937-13145-3-git-send-email-m.othacehe@gmail.com \
    --to=m.othacehe@gmail.com \
    --cc=29409@debbugs.gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this external index

	https://git.savannah.gnu.org/cgit/guix.git

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.