c.sh 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. #!/usr/bin/env dash
  2. set -e
  3. cd "$(dirname "$0")"
  4. readonly wd="/var/spool/build/src/seppo"
  5. uname -sm | figlet
  6. [ "$1" = "inside" ] && {
  7. shift
  8. echo inside $GIT_SHA
  9. cd
  10. rsync -qaP --delete --exclude _build --exclude doc "$wd" .
  11. make -C seppo "$@"
  12. exit
  13. }
  14. emul_path="$(sysctl compat.linux.emul_path | cut -c25-)"
  15. readonly emul_path
  16. ls -d "$emul_path/$(dirname "$wd")" > /dev/null
  17. echo get the sources
  18. rsync -qaP --delete --exclude _build --exclude .git . "$emul_path/$wd"
  19. GIT_SHA="$(git log -1 --format="%h")"
  20. export GIT_SHA
  21. gmake -C "$emul_path/$wd" "$@"
  22. doas chroot "$emul_path" su - "$USER" -c "GIT_SHA="$GIT_SHA" sh $wd/$(basename "$0") inside $@"
  23. echo collect binaries
  24. cd "$emul_path$wd/_build"
  25. rsync -aP "$emul_path/$HOME/seppo/_build/"*.cgi .
  26. tar czf source.tar.gz --exclude _build ..
  27. echo sign binaries
  28. pk_pem="$(ls /media/msdosfs/*/seppo.priv.pem 2>/dev/null)"
  29. readonly pk_pem
  30. for f in *.cgi source.tar.gz
  31. do
  32. # https://stackoverflow.com/a/18359743
  33. openssl dgst -sha256 -sign "$pk_pem" -out "$f.signature" "$f"
  34. done
  35. echo "Dev.Seppo.Social" | figlet
  36. arch="$(ssh dev.seppo.social uname -sm | tr ' ' '-')"
  37. rsync -avPz -- *"-$arch"-*.cgi* dev.seppo.social:~/tmp/
  38. f="$(ls -t "seppo-$arch"-*.cgi | head -n 1)"
  39. ssh dev.seppo.social "cd tmp && rm seppo.cgi ; ln -s $f seppo.cgi"
  40. beep