diff options
author | Erich Eckner <git@eckner.net> | 2017-10-07 22:38:03 +0200 |
---|---|---|
committer | Erich Eckner <git@eckner.net> | 2017-10-07 22:38:03 +0200 |
commit | ac149ed01c5fc6d36a9f14cb7b3ed0127fd4490b (patch) | |
tree | 534c94f3d97366b3f94a9d5182d88d6c8662578c /bin/get-package-updates | |
parent | f4490466362c9e7b442f683f5ee1ad0452341240 (diff) | |
download | builder-ac149ed01c5fc6d36a9f14cb7b3ed0127fd4490b.tar.xz |
bin/get-package-updates: fix deletion of packages if only patch xor upstream was removed
Diffstat (limited to 'bin/get-package-updates')
-rwxr-xr-x | bin/get-package-updates | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/bin/get-package-updates b/bin/get-package-updates index 23fba41..96c24f0 100755 --- a/bin/get-package-updates +++ b/bin/get-package-updates @@ -11,9 +11,6 @@ # TODO: (might be connected to above): find out who deletes loop-files which # should not be deleted -# TODO: a package must be deleted in the upstream repository and in the -# modification repository to get onto the deletion list - # TODO: remove extra whitelist cases # shellcheck source=conf/default.conf @@ -207,7 +204,30 @@ done | \ # deleted PKGBUILD "D") - delete_package "${package}" + found_package=false + for repository in ${repo_names}; do + eval 'repo_path="${repo_paths__'"${repository}"'}"' + if [ "${repository}" = "archlinux32" ]; then + if git -C "${repo_path}" archive "$(cat "${work_dir}/${repository}.revision")" 2> /dev/null | \ + tar -t 2> /dev/null | \ + grep -q "$(str_to_regex "${package}")/PKGBUILD$"; then + found_package=true + break; + fi + else + if git -C "${repo_path}" archive "$(cat "${work_dir}/${repository}.revision")" -- "${package}/repos" 2> /dev/null | \ + tar -t --wildcards "${package}/repos/*/PKGBUILD" 2> /dev/null | \ + cut -d/ -f3 | \ + grep -v 'staging\|testing\|-unstable' | \ + grep -vq -- '-i686$'; then + found_package=true + break; + fi + fi + done + if ! ${found_package}; then + delete_package "${package}" + fi ;; *) |