Chris@54
|
1 #!/bin/bash
|
Chris@54
|
2 #
|
Chris@54
|
3 # Docker required
|
Chris@54
|
4
|
Chris@54
|
5 set -eu
|
Chris@54
|
6
|
Chris@54
|
7 current=$(hg id | awk '{ print $1; }')
|
Chris@54
|
8
|
Chris@54
|
9 case "$current" in
|
Chris@54
|
10 *+) echo "ERROR: Current working copy has been modified - unmodified copy required so we know we can check it out separately and obtain the same contents"; exit 2;;
|
Chris@54
|
11 *);;
|
Chris@54
|
12 esac
|
Chris@54
|
13
|
Chris@54
|
14 echo
|
Chris@91
|
15 echo "Building appimage from revision $current..."
|
Chris@54
|
16
|
Chris@54
|
17 dockerdir=deploy/linux/docker
|
Chris@54
|
18
|
Chris@54
|
19 cat "$dockerdir"/Dockerfile.in | \
|
Chris@54
|
20 perl -p -e "s/\[\[REVISION\]\]/$current/g" > \
|
Chris@54
|
21 "$dockerdir"/Dockerfile.gen
|
Chris@54
|
22
|
Chris@91
|
23 cat "$dockerdir"/Dockerfile_test.in | \
|
Chris@91
|
24 perl -p -e "s/\[\[REVISION\]\]/$current/g" > \
|
Chris@91
|
25 "$dockerdir"/Dockerfile_test.gen
|
Chris@91
|
26
|
Chris@54
|
27 fgrep 'hg.sr.ht' ~/.ssh/known_hosts > "$dockerdir"/known_hosts
|
Chris@54
|
28 cp ~/.ssh/id_rsa_build "$dockerdir"/id_rsa_build
|
Chris@54
|
29 chmod 600 "$dockerdir"/known_hosts "$dockerdir"/id_rsa_build
|
Chris@54
|
30 trap "rm $dockerdir/known_hosts $dockerdir/id_rsa_build" 0
|
Chris@54
|
31
|
Chris@54
|
32 dockertag="cannam/vamp-plugin-pack-installer-$current"
|
Chris@54
|
33
|
Chris@54
|
34 sudo docker build -t "$dockertag" -f "$dockerdir"/Dockerfile.gen "$dockerdir"
|
Chris@54
|
35
|
Chris@54
|
36 outdir="$dockerdir/output"
|
Chris@54
|
37 mkdir -p "$outdir"
|
Chris@54
|
38
|
Chris@54
|
39 container=$(sudo docker create "$dockertag")
|
Chris@54
|
40
|
Chris@54
|
41 sudo docker cp "$container":output.tar "$outdir"
|
Chris@54
|
42 sudo docker rm "$container"
|
Chris@54
|
43
|
Chris@54
|
44 ( cd "$outdir" ; tar xf output.tar && rm -f output.tar )
|
Chris@91
|
45
|
Chris@91
|
46 sudo docker build -f "$dockerdir"/Dockerfile_test.gen "$dockerdir"
|