summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErich Eckner <git@eckner.net>2018-07-09 14:14:12 +0200
committerErich Eckner <git@eckner.net>2018-07-09 15:22:49 +0200
commit075501a8ad2cc8f66c72f9630b3e609830dc8253 (patch)
tree27c8f3efa0188e5934b8ef59def46796e455854f
parent0bc02b2237c5be15bfb4980bbcfaf141456032b5 (diff)
downloadarchlinuxewe.git.save-075501a8ad2cc8f66c72f9630b3e609830dc8253.tar.xz
bumpVersion kann nun auch python-Zeug
-rwxr-xr-xbumpVersion5
-rwxr-xr-xpythonFunktionen131
-rwxr-xr-xtesteAbhaengigkeiten8
3 files changed, 141 insertions, 3 deletions
diff --git a/bumpVersion b/bumpVersion
index d76f45e5..dee6089c 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 00000000..e89ef90a
--- /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 1a294667..ece1fa1a 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|^'"$(