#!/bin/bash me="$(readlink -f "$0")" myDir="$(dirname "${me}")" verwendung() { >&2 echo '' >&2 echo "$(basename "$0")"': aktualisiere Version von Paketen in archlinuxewe' >&2 echo '' >&2 echo 'mögliche Optionen:' >&2 echo ' -h|--help: zeige diese Hilfe' >&2 echo ' -n|--nicht $paket: ignoriere Paket $paket' [ -z "$1" ] && exit 1 || exit $1 } eval set -- "$( getopt -o hn: \ --long help \ --long nicht: \ -n "$(basename "$0")" -- "$@" || \ echo verwendung )" unset nichtPakete while true; do case "$1" in -h|--help) verwendung 0 ;; -n|--nicht) shift nichtPakete="$(printf '%s\n%s' "${nichtPakete}" "$1" | grep -v '^$')" ;; --) shift break ;; *) >&2 echo 'Hups, das sollte nicht passieren können, Option '"$1"' kenne ich doch nicht ...' exit -1 esac shift done if [ $# -eq 0 ]; then >&2 echo 'bumping versions of all packages ...' pkgs="$( ( "${myDir}/checkVersions" --noUpdate | \ cut -d: -f1 echo "${nichtPakete}" echo "${nichtPakete}" ) | \ sort | \ uniq -u )" [ -z "${pkgs}" ] && exit 0 "${me}" ${pkgs} exit $? elif [ $# -gt 1 ]; then [ -n "${nichtPakete}" ] && verwendung err=0 for pkg in "$@"; do "${me}" "${pkg}" cErr=$? [ ${cErr} -gt ${err} ] && err=${cErr} done exit ${err} fi [ -n "${nichtPakete}" ] && verwendung paket="${1%/}" >&2 echo "bumping '${paket}' ..." cd "${myDir}" [ -r "${paket}/PKGBUILD" ] || exit 1 vers="$(./checkVersions -m "${paket}")" [ -n "${remVer}" ] && vers="$(echo "${vers}" | grep -v 'remVer')" eval ${vers} if [ "${remVer}" == "${pkgver}" ]; then >&2 echo '... nothing to do here.' exit 0 fi if [ -z "${remVer}" ]; then >&2 echo '... remote Version not determined.' exit 0 fi cd "${paket}" sed 's|^\(\s*\)pkgver=.*$|\1pkgver='"${remVer}"'|; s|^\(\s*\)pkgrel=.*$|\1pkgrel=1|; s@^\s*\(sha[[:digit:]]\+sums\|md5sums\)=@sha512sums=@; /^\(sha[[:digit:]]\+\|md5\)sums_/d; '"${sedExtra}" -i PKGBUILD sed ' :begin; $!N; s@^sha512sums=\([^)]*\)\n\(.*\)$@sha512sums=\1 \2@; tbegin; P; D ' -i PKGBUILD summen="$( \ makepkg -g | \ sed ':begin; $!N; s@^\(.*\)\n\(.*\)$@\1\\n\2@; tbegin; P; D ' \ )" sed 's|sha512sums=.*$|'"${summen}"'|' -i PKGBUILD ( if ! yes '' | "${myDir}/testeAbhaengigkeiten" "${paket}"; then was='' ec[0]='jJyY' ec[1]='nN' while [[ "${ec[0]}" != *"${was}"* ]] && [[ "${ec[1]}" != *"${was}"* ]] || [ -z "${was}" ]; do read -p 'Trotzdem weiter machen (j/y/n)? ' was done [[ "${ec[0]}" == *"${was}"* ]] fi ) || exit $? if [ "${paket}" != 'qgis-git' ]; then rm -rf "src" "pkg" sudo pacman -Sy makepkg -fcsr --noconfirm --asdeps || exit 1 namcap ${paket}-${remVer}-1-*.pkg.tar.xz || exit 1 fi git commit PKGBUILD -m "${paket} ${pkgver}-${pkgrel} -> ${remVer}-1" >&2 echo '... done'