package-all-apertium 2.5 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071
  1. #!/bin/bash
  2. readonly CHROOT_NAMES=( armv7h i686 x86_64 )
  3. readonly ABS_ROOT=/var/lib/archbuild/abslibre # no spaces plz
  4. readonly ABS_UPSTREAM=parabola
  5. readonly PKG_EXT=pkg.tar.zst
  6. readonly PKG_DIRS=( ${ABS_ROOT}/pcr/vislcg3 \
  7. ${ABS_ROOT}/pcr/lttoolbox \
  8. ${ABS_ROOT}/pcr/apertium-lex-tools \
  9. ${ABS_ROOT}/pcr/apertium \
  10. ${ABS_ROOT}/pcr/apertium-eng-spa \
  11. ${ABS_ROOT}/pcr/apertium-eo-en ) # no trailing slashes
  12. readonly PKGBUILDS=( ${PKG_DIRS[*]/%/\/PKGBUILD} )
  13. Main()
  14. {
  15. local chroot pkg_dir pkgname pkgver pkgrel arches chroot_dir arch
  16. local pkgs=()
  17. local all_pkgs=()
  18. local commit_msg=''
  19. echo -e "\nupgrading chroots\n"
  20. for chroot in ${CHROOT_NAMES[*]}
  21. do echo -e "\nupgrading chroot '${chroot}'\n"
  22. sudo librechroot -n ${chroot} update || exit 1
  23. done
  24. echo -e "\nbuilding packages\n"
  25. for pkg_dir in ${PKG_DIRS[*]}
  26. do [[ -d "${pkg_dir}" && -f "${pkg_dir}"/PKGBUILD ]] ||
  27. ! echo "${pkg_dir} - no PKGBUILD" || continue
  28. cd ${pkg_dir}/ ; git checkout HEAD PKGBUILD &> /dev/null ;
  29. pkgname=$(source PKGBUILD ; echo ${pkgname} ;)
  30. pkgver=$( source PKGBUILD ; echo ${pkgver} ;)
  31. pkgrel=$( source PKGBUILD ; echo ${pkgrel} ;)
  32. arches="$(source PKGBUILD ; echo ${arch[*]} ;)"
  33. for chroot in ${CHROOT_NAMES[*]}
  34. do chroot_dir=$(librechroot -n ${chroot} |& grep -E 'copydir +: ' | cut -d: -f2)
  35. arch=$(source ${chroot_dir}/etc/os-release ; echo ${VARIANT_ID%-*} ;)
  36. [[ -n "${arch}" && " ${arches} " =~ " ${arch} " ]] ||
  37. [[ "${arch}" == x86_64 && "${arches}" == 'any' ]] || continue
  38. echo -e "\nbuilding pkgname: '${pkgname}' arch: '${arch}' in chroot: '${chroot}'\n"
  39. sudo libremakepkg -n ${chroot}
  40. pkgs+=( $(ls ${pkgname}-${pkgver}-${pkgrel}-${arch}.${PKG_EXT} 2> /dev/null) )
  41. done
  42. if (( ${#pkgs[*]} ))
  43. then all_pkgs+=( ${pkgs[*]} )
  44. commit_msg+="[$(basename ${pkg_dir})]"
  45. else echo "ERROR: ${pkg_dir} - no packages generated"
  46. fi
  47. done
  48. if (( ${#all_pkgs[*]} ))
  49. then git commit -m "${commit_msg}: rebuild against latest kernels" ${PKGBUILDS[*]}
  50. fi
  51. echo "(${#all_pkgs[*]}) packages generated" ; printf "%s\n" ${all_pkgs[*]} ;
  52. }
  53. if git pull $ABS_UPSTREAM master &> /dev/null
  54. then Main
  55. else echo "failed to synchronize abslibre VCS - is the working tree dirty?"
  56. fi