fox-compiler 868 B

123456789101112131415161718192021222324252627
  1. #!/bin/sh
  2. directory="/var/tmp/fox-compiler/"
  3. update () { svn checkout --non-interactive --quiet https://svn-dept.inf.ethz.ch/svn/lecturers/a2/trunk/tools/builds/a2 "$directory" && make --directory "$directory" --quiet dependencies && version=$(svnversion "$directory/source"); }
  4. check () { make --question --directory "$directory" --quiet "$target"; }
  5. build () { timeout 1h make --directory "$directory" --quiet "$target"; }
  6. notify () { echo "$output" | sendbuild "Fox Compiler" "$target" "$version" "$status"; }
  7. update || exit 1
  8. process ()
  9. {
  10. local target="$1"
  11. check && exit 0
  12. local status="Building" output=""
  13. notify
  14. trap notify exit
  15. trap "status=Aborted" int term kill
  16. status="Failed" output=$(build 2>&1)
  17. test $? -eq 0 && status="Succeeded" output=""
  18. trap exit
  19. notify
  20. }
  21. process "Self Compilation"
  22. process "Compilation Tests"
  23. process "Execution Tests"