Merge branch 'master' of git.carlh.net:git/cdist
[cdist.git] / vmbuild
1 #!/bin/bash
2 set -e
3
4 if [ "$1" == "" -o "$2" == "" ]; then
5     echo "Syntax: $0 <target> <checkout> [<output-dir>]"
6     exit 1
7 fi
8
9 IFS='-' read distro version bits <<< $1
10
11 checkout=$2
12 output=$3
13
14 if [ "$bits" == "32" ]; then
15     port=2000
16 elif [ "$bits" == "64" ]; then
17     port=2001
18 else
19     echo "Unrecognised bit depth $bits"
20     exit 1
21 fi
22
23 nohup vboxheadless --startvm fedora-22-$bits &
24 vbox=$!
25 sleep 10
26 ssh -p $port carl@localhost "rm -rf fedora-*"
27 echo "run cdist..."
28 ssh -p $port carl@localhost cdist -p dcpomatic -c $checkout -t host package
29 echo "copy from vm to $output..."
30 if [ "$output" != "" ]; then
31     tmp=/var/tmp/copy.$$
32     mkdir -p $tmp
33     scp -P $port carl@localhost:fedora-22-$bits/* $tmp/
34     scp $tmp/*.rpm $output/
35     rm -rf $tmp
36 fi
37 set +e
38 echo "power off vm..."
39 ssh -p $port carl@localhost "sudo /sbin/poweroff"
40 set -e
41
42 echo "wait for vm to terminate..."
43 while [[ ( -d /proc/$vbox ) && ( -z `grep zombie /proc/$vbox/status` ) ]]; do
44     sleep 1
45 done