diff options
author | Maximilian Bosch <maximilian@mbosch.me> | 2019-02-03 12:48:40 +0100 |
---|---|---|
committer | Maximilian Bosch <maximilian@mbosch.me> | 2019-02-04 10:46:12 +0100 |
commit | e998f5140fab0d7977d5a26124d0d2ec64020cde (patch) | |
tree | e9c73b5e862e5deeab902a0d2c8ed41727e6af7b /nixos | |
parent | 230d55edc8120af49000a95bde23e5b1a424d456 (diff) | |
download | nixlib-e998f5140fab0d7977d5a26124d0d2ec64020cde.tar nixlib-e998f5140fab0d7977d5a26124d0d2ec64020cde.tar.gz nixlib-e998f5140fab0d7977d5a26124d0d2ec64020cde.tar.bz2 nixlib-e998f5140fab0d7977d5a26124d0d2ec64020cde.tar.lz nixlib-e998f5140fab0d7977d5a26124d0d2ec64020cde.tar.xz nixlib-e998f5140fab0d7977d5a26124d0d2ec64020cde.tar.zst nixlib-e998f5140fab0d7977d5a26124d0d2ec64020cde.zip |
nixos-build-vms: pass `--option` to `nix-build`
Also simplified the argument parsing to write all currently supported CLI options into a bash array and pass this to `nix-build`. Also documented `--option` usage in the corresponding manpage.
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/doc/manual/man-nixos-build-vms.xml | 22 | ||||
-rw-r--r-- | nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh | 61 |
2 files changed, 48 insertions, 35 deletions
diff --git a/nixos/doc/manual/man-nixos-build-vms.xml b/nixos/doc/manual/man-nixos-build-vms.xml index 87e4f3dae869..7d6e04e0dd90 100644 --- a/nixos/doc/manual/man-nixos-build-vms.xml +++ b/nixos/doc/manual/man-nixos-build-vms.xml @@ -24,8 +24,14 @@ <arg> <option>--help</option> - </arg> - + </arg> + + <arg> + <option>--option</option> + <replaceable>name</replaceable> + <replaceable>value</replaceable> + </arg> + <arg choice="plain"> <replaceable>network.nix</replaceable> </arg> @@ -115,6 +121,18 @@ </para> </listitem> </varlistentry> + <varlistentry> + <term> + <option>--option</option> <replaceable>name</replaceable> <replaceable>value</replaceable> + </term> + <listitem> + <para>Set the Nix configuration option + <replaceable>name</replaceable> to <replaceable>value</replaceable>. + This overrides settings in the Nix configuration file (see + <citerefentry><refentrytitle>nix.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>). + </para> + </listitem> + </varlistentry> </variablelist> </refsection> </refentry> diff --git a/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh b/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh index 4e981c074a57..25106733087e 100644 --- a/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh +++ b/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh @@ -9,49 +9,44 @@ showUsage() { # Parse valid argument options -PARAMS=`getopt -n $0 -o h -l no-out-link,show-trace,help -- "$@"` +nixBuildArgs=() +networkExpr= -if [ $? != 0 ] -then - showUsage - exit 1 -fi - -eval set -- "$PARAMS" - -# Evaluate valid options - -while [ "$1" != "--" ] -do +while [ $# -gt 0 ]; do case "$1" in - --no-out-link) - noOutLinkArg="--no-out-link" - ;; - --show-trace) - showTraceArg="--show-trace" - ;; - -h|--help) - showUsage - exit 0 - ;; + --no-out-link) + nixBuildArgs+=("--no-out-link") + ;; + --show-trace) + nixBuildArgs+=("--show-trace") + ;; + -h|--help) + showUsage + exit 0 + ;; + --option) + shift + nixBuildArgs+=("--option" "$1" "$2"); shift + ;; + *) + if [ ! -z "$networkExpr" ]; then + echo "Network expression already set!" + showUsage + exit 1 + fi + networkExpr="$(readlink -f $1)" + ;; esac - + shift done -shift - -# Validate the given options - -if [ "$1" = "" ] +if [ -z "$networkExpr" ] then echo "ERROR: A network expression must be specified!" >&2 exit 1 -else - networkExpr=$(readlink -f $1) fi # Build a network of VMs - nix-build '<nixpkgs/nixos/modules/installer/tools/nixos-build-vms/build-vms.nix>' \ - --argstr networkExpr $networkExpr $noOutLinkArg $showTraceArg + --argstr networkExpr $networkExpr "${nixBuildArgs[@]}" |