summaryrefslogtreecommitdiff
path: root/bin/modify-package-state
diff options
context:
space:
mode:
Diffstat (limited to 'bin/modify-package-state')
-rwxr-xr-xbin/modify-package-state20
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"