aboutsummaryrefslogtreecommitdiff
path: root/nixpkgs/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh
diff options
context:
space:
mode:
Diffstat (limited to 'nixpkgs/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh')
-rw-r--r--nixpkgs/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh52
1 files changed, 52 insertions, 0 deletions
diff --git a/nixpkgs/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh b/nixpkgs/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh
new file mode 100644
index 00000000000..25106733087
--- /dev/null
+++ b/nixpkgs/nixos/modules/installer/tools/nixos-build-vms/nixos-build-vms.sh
@@ -0,0 +1,52 @@
+#! @shell@ -e
+
+# Shows the usage of this command to the user
+
+showUsage() {
+ exec man nixos-build-vms
+ exit 1
+}
+
+# Parse valid argument options
+
+nixBuildArgs=()
+networkExpr=
+
+while [ $# -gt 0 ]; do
+ case "$1" in
+ --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
+
+if [ -z "$networkExpr" ]
+then
+ echo "ERROR: A network expression must be specified!" >&2
+ exit 1
+fi
+
+# Build a network of VMs
+nix-build '<nixpkgs/nixos/modules/installer/tools/nixos-build-vms/build-vms.nix>' \
+ --argstr networkExpr $networkExpr "${nixBuildArgs[@]}"