Chris@622: #!/bin/bash Chris@622: # Chris@622: # Docker required Chris@622: Chris@622: set -eu Chris@622: Chris@622: current=$(hg id | awk '{ print $1; }') Chris@622: release=$(perl -p -e 's/^[^"]*"([^"]*)".*$/$1/' version.h) Chris@622: Chris@622: case "$current" in Chris@622: *+) 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@622: *);; Chris@622: esac Chris@622: Chris@622: echo Chris@622: echo "Building Debian deb archive from revision $current..." Chris@622: Chris@622: dockerdir=deploy/linux/docker Chris@622: Chris@622: cat "$dockerdir"/Dockerfile_deb.in | \ Chris@622: perl -p -e "s/\[\[REVISION\]\]/$current/g" | \ Chris@622: perl -p -e "s/\[\[RELEASE\]\]/$release/g" > \ Chris@622: "$dockerdir"/Dockerfile_deb.gen Chris@622: Chris@622: cat "$dockerdir"/Dockerfile_test_deb.in | \ Chris@622: perl -p -e "s/\[\[REVISION\]\]/$current/g" | \ Chris@622: perl -p -e "s/\[\[RELEASE\]\]/$release/g" > \ Chris@622: "$dockerdir"/Dockerfile_test_deb.gen Chris@622: Chris@622: fgrep 'hg.sr.ht' ~/.ssh/known_hosts > "$dockerdir"/known_hosts Chris@622: cp ~/.ssh/id_rsa_build "$dockerdir"/id_rsa_build Chris@622: chmod 600 "$dockerdir"/known_hosts "$dockerdir"/id_rsa_build Chris@622: trap "rm $dockerdir/known_hosts $dockerdir/id_rsa_build" 0 Chris@622: Chris@622: dockertag="cannam/tony-deb-$current" Chris@622: Chris@622: sudo docker build -t "$dockertag" -f "$dockerdir"/Dockerfile_deb.gen "$dockerdir" Chris@622: Chris@622: outdir="$dockerdir/output" Chris@622: mkdir -p "$outdir" Chris@622: Chris@622: container=$(sudo docker create "$dockertag") Chris@622: Chris@622: sudo docker cp "$container":output-deb.tar "$outdir" Chris@622: sudo docker rm "$container" Chris@622: Chris@622: ( cd "$outdir" ; tar xf output-deb.tar && rm -f output-deb.tar ) Chris@622: Chris@622: sudo docker build -f "$dockerdir"/Dockerfile_test_deb.gen "$dockerdir"