#!/bin/bash if [ $# -eq 0 ]; then /usr/src/ports/lastVersion.sh \ | sed -n ' s@ \(upstream verfügbar, bei mir\|vs\.\) \(\S\+\)$@@ T p ' \ | while read package new_version old_version; do printf '%s\n' "${old_version}" "${new_version}" \ | sort -V \ | tail -n1 \ | grep -qxF "${new_version}" \ || continue printf '%s\n' "${package}" "${new_version}" done \ | parallel -j2 --max-args 2 "$0" {} \; exit $? fi if [ $# -ne 2 ]; then >&2 echo 'usage:' >&2 echo ' update.sh' >&2 echo ' update all packages' >&2 echo ' update.sh $package $version' >&2 echo ' update package $package to version $version' exit 1 fi set -e pkg="${1%:}" version="$2" cd /usr/src/ports/*/${pkg} oldVer=$( sed ' s/^version=// t d ' Pkgfile ) if [ -z "${version}" ]; then version="${oldVer}" fi if [ "${oldVer}" = "${version}" ]; then release=$(( 1+$( sed ' s/^release=// t d ' Pkgfile ) )) sed -i ' /^release=/ s/=.*$/='"${release}"'/ ' Pkgfile else sed -i ' /^version=/ s/=.*$/='"${version}"'/ /^release=/ s/=.*$/=1/ ' Pkgfile fi sudo -u pkgmk fakeroot pkgmk -if -im -is -d pkgmk -uf pkgmk -um pkgmk -us -sk /etc/ports/deepthought.sec if [ "${oldVer}" = "${version}" ]; then git commit . -m "${pkg}: rebuild" else git commit . -m "${pkg}: ${oldVer} -> ${version}" fi echo 'Erfolg!'