#!/bin/bash if [ $# -ne 1 ]; then >&2 echo "Verwendung: testeAbhaengigkeiten paket" exit 1 fi paket="$1" me="$(readlink -f "$0")" cd "$(dirname "${me}")" if [ ! -d "${paket}" ]; then >&2 printf 'Paket "%s" existiert nicht.\n' "${paket}" exit 1 fi if [ "${paket#perl-}" != "${paket}" ]; then . perlFunktionen ladePkgbuild "${paket}" || exit $[$?-1] versteheMetaYml "${paket}" || exit $[$?-1] elif [ "${paket#python-}" != "${paket}" ]; then if ( . "$1/PKGBUILD"; printf '%s\n' "${pkgname[@]}"; ) \ | grep -qF 'python2-'; then . pythonFunktionen python2 else . pythonFunktionen python fi ladePkgbuild "${paket}" || exit $[$?-1] versteheRequirements "${paket}" || exit $[$?-1] else # not python-* or perl-* => nothing to do / yet to be implemented exit 0 fi err=false for wasAusgeben in "${!metaRegexe[@]}"; do probleme="$( ( echo "${pkgBuild["${wasAusgeben}"]}" echo "${metaYml["${wasAusgeben}"]}" ) | \ sort | \ uniq -u \ )" if [ -n "${probleme}" ]; then >&2 echo "${wasAusgeben} in ${paket}/PKGBUILD unterscheidet sich:" >&2 echo '-------------------------------------' >&2 echo "${metaYml["${wasAusgeben}"]}" >&2 echo '^^^ META.yml ^^^ vs. vvv PKGBUILD vvv' >&2 echo "${pkgBuild["${wasAusgeben}"]}" >&2 echo "=====================================" >&2 echo "${probleme}" >&2 echo "=====================================" err=true fi done if ${err}; then ersatz="$( for wasAusgeben in "${!metaRegexe[@]}"; do if [ -n "${metaYml["${wasAusgeben}"]}" ]; then echo "${wasAusgeben}=(" echo "${metaYml["${wasAusgeben}"]})" | \ sed "s|^\s*||; s|\s*\$||; s|^\(.*[^)]\)\()\?\)\$| '\1'\2|" fi done | \ sed ':begin; $!N; s@^\(.*\)\n\(.*\)$@\1\\n\2@; tbegin; P; D ' )" >&2 echo 'neu könnte das etwa so aussehen:' >&2 echo '-------------------------------------' >&2 echo -e "${ersatz}" >&2 echo '-------------------------------------' read -p 'Ich würde das jetzt mal vollautomatisch verändern. Einwände? ' was if [ -n "${was}" ]; then exit 1 fi sed ' :begin; $!N; s@^\(\('"$( printf '%s\|' "${!metaRegexe[@]}" | \ sed 's/\\|$//' )"'\)=[^)]*\)\n\(.*\)$@\1 \3@; tbegin; P; D ' -i PKGBUILD sed '/^\('"$( printf '%s\|' "${!metaRegexe[@]}" | \ sed ' s/\(^\|\\|\)_\?depends\($\|\\|\)/\1\2/ s/\(\\|\)\{2\}/\1/g s/\\|$// s/^\\|// ' )"'\)=/d' -i PKGBUILD sed 's|^'"$( printf '%s\n' "${!metaRegexe[@]}" | \ grep -xm1 '_\?depends' | \ tr -d '\n' )"'=.*$|'"${ersatz}"'|' -i PKGBUILD "${me}" "$@" fi