Seppo.Social -> Seppo.mro.name
[Seppo.git] / c.sh
blobae72b2078ba1c27d6046f7f71fe412ab673da696
1 #!/usr/bin/env dash
2 set -e
3 cd "$(dirname "$0")"
5 readonly wd="/var/spool/build/src/seppo"
7 uname -sm | figlet
8 opam switch
9 [ "$1" = "inside" ] && {
10 shift
12 rsync -qaP --delete --exclude _build --exclude doc "$wd" .
13 # just be explicit:
14 echo "GIT_SHA=$GIT_SHA make -C seppo $*"
15 GIT_SHA=$GIT_SHA make -C seppo "$@"
17 exit
20 emul_path="$(sysctl compat.linux.emul_path | cut -c25-)"
21 readonly emul_path
22 ls -d "$emul_path$(dirname "$wd")" > /dev/null
24 pwd
25 echo "rsync -qaP --delete --exclude _build --exclude .git . $emul_path$wd"
26 rsync -qaP --delete --exclude _build --exclude .git . "$emul_path$wd"
28 GIT_SHA="$(git log -1 --format="%h")"
29 echo "GIT_SHA=$GIT_SHA gmake -C $emul_path$wd $*"
30 GIT_SHA=$GIT_SHA gmake -C "$emul_path$wd" "$@"
31 echo ""
32 echo "doas chroot $emul_path su - $USER -c \"GIT_SHA=$GIT_SHA sh $wd/$(basename "$0") inside $*\""
33 doas chroot "$emul_path" su - "$USER" -c "GIT_SHA=$GIT_SHA sh $wd/$(basename "$0") inside $*"
34 echo ""
36 echo collect binaries
37 cd "$emul_path$wd/_build"
38 pwd
39 rsync -aP "$emul_path$HOME/seppo/_build/"*.cgi .
40 tar czf source.tar.gz --exclude _build ..
42 echo sign binaries
43 pk_pem="$(ls /media/*/seppo.priv.pem 2>/dev/null)"
44 readonly pk_pem
45 for f in *.cgi source.tar.gz
47 # https://stackoverflow.com/a/18359743
48 # echo "openssl dgst -sha256 -sign $pk_pem -out $f.signature $f"
49 openssl dgst -sha256 -sign "$pk_pem" -out "$f.signature" "$f"
50 done
51 ls -l ./*.signature
53 echo deploy
54 for dst in dev.seppo.mro.name dev1.seppo.mro.name
56 echo "$dst" | figlet
57 arch="$(ssh -4 "$dst" uname -sm | tr ' ' '-')"
58 rsync -4 -avPz -- *"-$arch"-*.cgi* "$dst":~/mro.name/dev.seppo/ || {
59 beep ; beep ; beep
60 continue
63 f="$(ls -t "seppo-$arch"-*.cgi | head -n 1)"
64 ssh -4 "$dst" "cd mro.name/dev.seppo && rm seppo.cgi ; ln -s $f seppo.cgi"
65 done
67 beep