about summary refs log tree commit diff
path: root/pkgs/tools/nixos/nixos-build-vms/nixos-build-vms.sh
diff options
context:
space:
mode:
authorzimbatm <zimbatm@zimbatm.com>2018-10-09 23:10:45 +0200
committerzimbatm <zimbatm@zimbatm.com>2018-10-16 11:12:36 +0200
commit187534454271910dcc023a9b0a0c27e9e79ecade (patch)
treef85579c48fa87348bb6b344d24132219f102b682 /pkgs/tools/nixos/nixos-build-vms/nixos-build-vms.sh
parentb7a07313cc72219964b93e47c36fffeed314a351 (diff)
downloadnixlib-187534454271910dcc023a9b0a0c27e9e79ecade.tar
nixlib-187534454271910dcc023a9b0a0c27e9e79ecade.tar.gz
nixlib-187534454271910dcc023a9b0a0c27e9e79ecade.tar.bz2
nixlib-187534454271910dcc023a9b0a0c27e9e79ecade.tar.lz
nixlib-187534454271910dcc023a9b0a0c27e9e79ecade.tar.xz
nixlib-187534454271910dcc023a9b0a0c27e9e79ecade.tar.zst
nixlib-187534454271910dcc023a9b0a0c27e9e79ecade.zip
nixos-*: init as package
Move all the nixos-* scripts from the nixos distribution as real
packages in the pkgs/ package set.

This allows non-nixos users to run the script as well. For example,
deploying a remote machine with:

    nixos-rebuild --target-host root@hostname --build-host root@hostname
Diffstat (limited to 'pkgs/tools/nixos/nixos-build-vms/nixos-build-vms.sh')
-rw-r--r--pkgs/tools/nixos/nixos-build-vms/nixos-build-vms.sh57
1 files changed, 57 insertions, 0 deletions
diff --git a/pkgs/tools/nixos/nixos-build-vms/nixos-build-vms.sh b/pkgs/tools/nixos/nixos-build-vms/nixos-build-vms.sh
new file mode 100644
index 000000000000..237a807609a0
--- /dev/null
+++ b/pkgs/tools/nixos/nixos-build-vms/nixos-build-vms.sh
@@ -0,0 +1,57 @@
+#! @shell@ -e
+
+# Shows the usage of this command to the user
+
+showUsage() {
+    exec man nixos-build-vms
+    exit 1
+}
+
+# Parse valid argument options
+
+PARAMS=`getopt -n $0 -o h -l no-out-link,show-trace,help -- "$@"`
+
+if [ $? != 0 ]
+then
+    showUsage
+    exit 1
+fi
+
+eval set -- "$PARAMS"
+
+# Evaluate valid options
+
+while [ "$1" != "--" ]
+do
+    case "$1" in
+	--no-out-link)
+	    noOutLinkArg="--no-out-link"
+	    ;;
+	--show-trace)
+	    showTraceArg="--show-trace"
+	    ;;
+	-h|--help)
+	    showUsage
+	    exit 0
+	    ;;
+    esac
+
+    shift
+done
+
+shift
+
+# Validate the given options
+
+if [ "$1" = "" ]
+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