summaryrefslogtreecommitdiff
path: root/bin/common-functions
diff options
context:
space:
mode:
Diffstat (limited to 'bin/common-functions')
-rwxr-xr-xbin/common-functions63
1 files changed, 63 insertions, 0 deletions
diff --git a/bin/common-functions b/bin/common-functions
index b25335b..9b7fe03 100755
--- a/bin/common-functions
+++ b/bin/common-functions
@@ -1213,3 +1213,66 @@ receive_buglist() {
s/".*$//
'
}
+
+# next_sub_pkgrel $package $git_revision $mod_git_revision $repository
+# giv out the next sub-pkgrel of the given package
+
+next_sub_pkgrel() {
+ ( # new shell is intentional
+ package="$1"
+ git_revision="$2"
+ mod_git_revision="$3"
+ repository="$4"
+ git_repo=$(find_git_repository_to_package_repository "${repository}")
+
+ temp_dir=$(mktemp -d)
+
+ find_pkgbuilds "${package}" "${repository}" "${git_repo}" "${git_revision}" "${mod_git_revision}"
+ extract_source_directory "${git_repo}" "${git_revision}" "${mod_git_revision}" "${temp_dir}" '0'
+
+ version=$(
+ cd "${temp_dir}"
+ makepkg --printsrcinfo | \
+ sed -n '
+ /^\s*\(epoch\|pkg\(name\|ver\|rel\)\) = /{s|^\s\+||;p}
+ ' | \
+ sed '
+ /^pkgname = /{
+ s/^.*= //
+ w pkgnames
+ d
+ }
+ s|^epoch = \(.*\)$|1 \1:|
+ s|^pkgver = \(.*\)$|2 \1-|
+ s|^pkgrel = \([^.]*\)\(\..*\)\?$|3 \1|
+ ' | \
+ sort -k1n,1 | \
+ sed '
+ s|^[0-9] ||
+ :a
+ N
+ s|\n[0-9] \(\S\+\)$|\1|
+ ta
+ '
+ )
+ sub_pkgrel=$(
+ ls_master_mirror 'i686/*/' | \
+ sed -n "$(
+ sed '
+ s/$/-'"${version}"'/
+ s/\./\\./g
+ s/^/^/
+ s/$/\\(\\.\\([0-9]\\+\\)\\)\\?-[^-]\\+$/
+ s|^.*$|/\0/{ s/\0/\\2/; s/^$/0/; p; b; }|
+ ' "${temp_dir}/pkgnames"
+ )" | \
+ sort -n | \
+ tail -n1
+ )
+ if [ -z "${sub_pkgrel}" ]; then
+ echo '0'
+ else
+ echo "$((sub_pkgrel+1))"
+ fi
+ )
+}