#! @shell@ -e # Shows the usage of this command to the user showUsage() { echo "Usage: $0 network_expr" echo "Options:" echo echo "--use-backdoor Indicates that the backdoor must be enabled so that the VMs can be accessed through a UNIX domain socket" echo "--no-out-link Do not create a 'result' symlink" echo "--show-trace Shows the output trace" echo "-h,--help Shows the usage of this command" } # Parse valid argument options PARAMS=`getopt -n $0 -o h -l use-backdoor,show-trace,help -- "$@"` if [ $? != 0 ] then showUsage exit 1 fi eval set -- "$PARAMS" # Evaluate valid options while [ "$1" != "--" ] do case "$1" in --use-backdoor) useBackdoorArg="--arg useBackdoor true" ;; --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 [ -z "$NIXOS" ] then NIXOS=/etc/nixos/nixos fi if [ "$@" = "" ] then echo "ERROR: A network expression must be specified!" >&2 exit 1 else networkExpr=$(readlink -f $@) fi # Build a network of VMs nix-build $NIXOS/modules/installer/tools/nixos-build-vms/build-vms.nix --argstr networkExpr $networkExpr --argstr nixos $NIXOS --argstr nixpkgs $NIXPKGS_ALL $useBackdoorArg $noOutLinkArg $showTraceArg