diff options
-rwxr-xr-x | bumpVersion | 5 | ||||
-rwxr-xr-x | pythonFunktionen | 131 | ||||
-rwxr-xr-x | testeAbhaengigkeiten | 8 |
3 files changed, 141 insertions, 3 deletions
diff --git a/bumpVersion b/bumpVersion index d76f45e5e..dee6089ca 100755 --- a/bumpVersion +++ b/bumpVersion @@ -61,7 +61,7 @@ if [ $# -eq 0 ]; then elif [ $# -gt 1 ]; then [ -n "${nichtPakete}" ] && verwendung err=0 - for pkg in "$@"; do + for pkg in "$@"; do "${me}" "${pkg}" cErr=$? [ ${cErr} -gt ${err} ] && err=${cErr} @@ -118,8 +118,7 @@ summen="$( \ sed 's|sha512sums=.*$|'"${summen}"'|' -i PKGBUILD ( - if ! yes '' | "${myDir}/testeAbhaengigkeiten" "${paket}" - then + if ! yes '' | "${myDir}/testeAbhaengigkeiten" "${paket}"; then was='' ec[0]='jJyY' ec[1]='nN' diff --git a/pythonFunktionen b/pythonFunktionen new file mode 100755 index 000000000..e89ef90a8 --- /dev/null +++ b/pythonFunktionen @@ -0,0 +1,131 @@ +#!/bin/bash + +set -e + +versionsUniq() { + tr ' ' '\n' | \ + sed 's|^python$|python>=0|' | \ + sort -rV | \ + sed 's@^\([^<=>]*\)\(\(>=\|=\|<\)[0-9.]*\)$@\1\2 \1@' | \ + sed 's|^\(\S*\)$|\1 \1|' | \ + uniq -f1 "$@" | \ + awk '{print $1}' | \ + sed 's|^python>=0$|python|' | \ + sort | \ + grep -v '^\s*$' +} + +ladePkgbuild() { + paket="$1" + + if [[ "${paket}" != "python-"* ]] + then + return 1 + fi + + cd "$(dirname "${me}")" + cd "${paket}" + + makepkg -f --verifysource + + . PKGBUILD +} + +versteheRequirements() { + archiv="${_pkgname}-${pkgver}.tar.gz" + [ -r "${archiv}" ] || archiv="${_pkgname}-${pkgver}.tgz" + + if [ ! -r "${archiv}" ]; then + >&2 echo "Kann Quelldatei nicht finden!" + return 2 + fi + + unset meta + + echo "requirements.txt lesen ..." + + meta="$( + tar -Oxzf "${archiv}" $( + tar -tzf "${archiv}" "${_pkgname}-${pkgver}" | \ + grep 'requirements*.txt' + ) | \ + sed ' + /^#/d + /cython/ { + s/^/_makedepends:/ + b + } + s/^/_depends:python-/ + ' | \ + sort -u + )" + + for wasAusgeben in "${!metaRegexe[@]}"; do + metaInfos["${wasAusgeben}"]=$( + printf '%s\n' "${meta}" | \ + sed -n ' + s/^'"${wasAusgeben}"':// + T + p + ' + ) + done + + for wasAusgeben in "${!metaRegexe[@]}"; do + eval 'tmp=("${'${wasAusgeben}'[@]}")' + pkgBuild["${wasAusgeben}"]=$( + echo "${tmp[@]}" | \ + tr " '" '\n\n' | \ + grep -v '^$' | \ + sort -u + ) + if [ -z "${pkgBuild["${wasAusgeben}"]}" ] && \ + [ "${wasAusgeben}" == "_depends" ]; then + pkgBuild["${wasAusgeben}"]="python" + fi + + metaYml["${wasAusgeben}"]="${metaInfos["${wasAusgeben}"]}" + + if [ -z "${metaYml["${wasAusgeben}"]}" ] && \ + [ "${wasAusgeben}" == "_depends" ]; then + metaYml["${wasAusgeben}"]="python" + fi + if [ "${wasAusgeben}" == "_makedepends" ]; then + metaYml["${wasAusgeben}"]=$( + { + { + { + { + echo "${metaYml["${wasAusgeben}"]}" + echo "${metYml["_depends"]}" + } | \ + versionsUniq + echo "${metaYml["_depends"]}" + } | \ + sort | \ + uniq -d | \ + sed 'p' + echo "${metaYml["${wasAusgeben}"]}" + } | \ + versionsUniq -u + echo "${pkgBuild["${wasAusgeben}"]}" | \ + grep '^\s*cython\($\|[<>=]\)' + } | \ + versionsUniq + ) + fi + done + + echo "... fertig" +} + +declare -A metaInfos +declare -A metaRegexe +declare -A metaSubst +declare -A metaYml +declare -A pkgBuild + +metaRegexe["_depends"]="requires" +metaSubst["_depends"]=true +metaRegexe["_makedepends"]="\(build\|configure\)_requires" +metaSubst["_makedepends"]=true diff --git a/testeAbhaengigkeiten b/testeAbhaengigkeiten index 1a294667a..ece1fa1a5 100755 --- a/testeAbhaengigkeiten +++ b/testeAbhaengigkeiten @@ -22,6 +22,13 @@ if [ "${paket#perl-}" != "${paket}" ]; then versteheMetaYml "${paket}" || exit $[$?-1] +elif [ "${paket#python-}" != "${paket}" ]; then + + . pythonFunktionen + + ladePkgbuild "${paket}" || exit $[$?-1] + + versteheRequirements "${paket}" || exit $[$?-1] else @@ -97,6 +104,7 @@ if ${err}; then s/\(^\|\\|\)_\?depends\($\|\\|\)/\1\2/ s/\(\\|\)\{2\}/\1/g s/\\|$// + s/^\\|// ' )"'\)=/d' -i PKGBUILD sed 's|^'"$( |