diff options
Diffstat (limited to 'bin/common-functions')
-rwxr-xr-x | bin/common-functions | 63 |
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 + ) +} |