6d3d0078888e49dad57b1da1968aed6919d80c67
[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 target=$1
10
11 IFS='-' read distro version bits <<< $target
12
13 checkout=$2
14 output=$3
15
16 case $target in
17 fedora-22-32) port=2000;;
18 fedora-22-64) port=2001;;
19 fedora-23-32) port=2002;;
20 fedora-23-64) port=2003;;
21 arch-64)      port=2004;;
22 *)
23     echo "Unrecognised bit depth $bits"
24     exit 1
25 esac
26
27 nohup vboxheadless --startvm $target &
28 vbox=$!
29 sleep 10
30 ssh -p $port carl@localhost "rm -rf fedora-* arch-*"
31 ssh -p $port carl@localhost cdist -p dcpomatic -c $checkout -t host package
32 if [ "$output" != "" ]; then
33     tmp=/var/tmp/copy.$$
34     mkdir -p $tmp
35     scp -P $port carl@localhost:$target/* $tmp/
36     scp $tmp/*.rpm $output/
37     rm -rf $tmp
38 fi
39 set +e
40 echo "power off vm..."
41 ssh -p $port carl@localhost "sudo /sbin/poweroff"
42 set -e
43
44 echo "wait for vm to terminate..."
45 while [[ ( -d /proc/$vbox ) && ( -z `grep zombie /proc/$vbox/status` ) ]]; do
46     sleep 1
47 done