repo-build 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  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/source;
  17. case ${package[type]} in
  18. git)
  19. git reset --hard > /dev/null;
  20. git clean -f -d > /dev/null;
  21. git fetch --tags > /dev/null;
  22. expect -c "
  23. set timeout 1
  24. log_user 0
  25. spawn git pull
  26. expect \"Already up-to-date.\" {
  27. exit 1
  28. }
  29. log_user 1
  30. expect eof {
  31. exit 0
  32. }
  33. }";
  34. rc=$?;
  35. if [[ $rc == 0 ]];then
  36. build=true;
  37. else
  38. build=false;
  39. fi;
  40. ;;
  41. svn)
  42. svn revert . -R;
  43. if [[ "$(svn info -r HEAD | grep -i "Last Changed Rev")" != "$(svn info | grep -i "Last Changed Rev")" ]];then
  44. svn update;
  45. build=true;
  46. else
  47. build=false;
  48. fi;
  49. ;;
  50. script)
  51. if [[ "${package[script]}" != "" ]];then
  52. ${package[script]};
  53. rc=$?;
  54. if [[ $rc == 0 ]];then
  55. build=false;
  56. else
  57. build=true;
  58. fi;
  59. else
  60. echo -e "\tNo Script configured";
  61. build=false;
  62. fi;
  63. ;;
  64. *)
  65. echo -e "\tType '${package[type]}' not implemented.";
  66. build=false;
  67. esac;
  68. if $build;then
  69. echo -e "\tUpdated";
  70. else
  71. echo -e "\tUp to Date";
  72. fi;
  73. cd $root/src/$name;
  74. if ! ls $name-*-i686.pkg.tar.xz &> /dev/null || $build || $override;then
  75. echo -e "\tBuilding";
  76. ./build.sh
  77. ls $name-*-i686.pkg.tar.xz | while read item; do
  78. cp $item $root/repo/updates/$item;
  79. done;
  80. fi;
  81. echo -e "\tDone"
  82. done;