repo-build 1.6 KB

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