about summary refs log tree commit diff
path: root/pkgs/tools/nixos/nixos-build-vms/nixos-build-vms.sh
blob: 237a807609a0c1ad4f074aade834c8e9f83b8af6 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
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