repo-build 2.0 KB

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