diff options
Diffstat (limited to 'bin/modify-package-state')
-rwxr-xr-x | bin/modify-package-state | 20 |
1 files changed, 16 insertions, 4 deletions
diff --git a/bin/modify-package-state b/bin/modify-package-state index aba9296..b4c8157 100755 --- a/bin/modify-package-state +++ b/bin/modify-package-state @@ -86,6 +86,12 @@ if [ $# -ne 1 ]; then usage fi +clean_up() { + rm -rf --one-file-system "${tmp_dir}" +} +tmp_dir=$(mktemp -d) +trap clean_up EXIT + input_file="$1" if ${report}; then if ! [ -w "${input_file}" ]; then @@ -96,9 +102,10 @@ if ${report}; then fi move_output() { cat "${output_file}" > "${input_file}" - rm "${output_file}" + clean_up } - output_file=$(mktemp) + output_file="${tmp_dir}/output-file" + touch "${output_file}" trap 'move_output' EXIT else output_file='/dev/null' @@ -117,6 +124,11 @@ if ! flock -s -n 9; then exit fi +if [ "${action}" = 'tested' ]; then + receive_buglist > \ + "${tmp_dir}/package-bug-titles" +fi + { err=0 while read -r package reason; do @@ -158,8 +170,8 @@ fi fi ;; 'tested') - # TODO: check in bugtracker if package is faulty - if [ -f "${work_dir}/package-states/${package}.testing" ]; then + if [ -f "${work_dir}/package-states/${package}.testing" ] && \ + ! package_has_bug "${package}" < "${tmp_dir}/package-bug-titles"; then mv \ "${work_dir}/package-states/${package}.testing" \ "${work_dir}/package-states/${package}.tested" |