repo-build 1.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. #!/bin/bash
  2. if [[ "$1" != "" ]];then
  3. override=true;
  4. else
  5. override=false;
  6. fi;
  7. root="$(dirname $BASH_SOURCE)/..";
  8. . $root/etc/packages.conf
  9. for val in "${packages[@]}"; do
  10. unset package;
  11. declare -A package;
  12. eval "package=($val)";
  13. name=${package[name]};
  14. echo "Checking $name";
  15. echo -e "\tChecking for updates";
  16. cd $root/src/$name/src;
  17. case ${package[type]} in
  18. git)
  19. git reset --hard > /dev/null;
  20. expect -c "
  21. set timeout 1
  22. log_user 0
  23. spawn git pull
  24. expect \"Already up-to-date.\" {
  25. exit 1
  26. }
  27. log_user 1
  28. expect eof {
  29. exit 0
  30. }
  31. }";
  32. rc=$?;
  33. if [[ $rc == 0 ]];then
  34. build=true;
  35. else
  36. build=false;
  37. fi;
  38. ;;
  39. svn)
  40. svn revert . -R;
  41. if [[ "$(svn info -r HEAD | grep -i "Last Changed Rev")" != "$(svn info | grep -i "Last Changed Rev")" ]];then
  42. svn update;
  43. build=true;
  44. else
  45. build=false;
  46. fi;
  47. ;;
  48. script)
  49. if [[ "${package[script]}" != "" ]];then
  50. ${package[script]};
  51. rc=$?;
  52. if [[ $rc == 0 ]];then
  53. build=false;
  54. else
  55. build=true;
  56. fi;
  57. else
  58. echo -e "\tNo Script configured";
  59. build=false;
  60. fi;
  61. ;;
  62. *)
  63. echo -e "\tType '${package[type]}' not implemented.";
  64. build=false;
  65. esac;
  66. if $build;then
  67. echo -e "\tUpdated";
  68. else
  69. echo -e "\tUp to Date";
  70. fi;
  71. cd $root/src/$name;
  72. if ! ls $name-*-i686.pkg.tar.xz &> /dev/null || $build || $override;then
  73. echo -e "\tBuilding";
  74. ./build.sh
  75. fi;
  76. echo -e "\tDone"
  77. done;