diff --git a/ia-wait-item-tasks b/ia-wait-item-tasks index 89064eb..f96204e 100755 --- a/ia-wait-item-tasks +++ b/ia-wait-item-tasks @@ -1,9 +1,9 @@ #!/bin/bash -# Wait until an item has no outstanding tasks -# Usage: ia-wait-item-tasks IDENTIFIER -if [[ $# -ne 1 ]] +if [[ $# -ne 1 || "$1" == '-h' || "$1" == '--help' ]] then echo 'Usage: ia-wait-item-tasks IDENTIFIER' + echo 'Waits until the Internet Archive item IDENTIFIER has no outstanding tasks.' + echo 'Exits non-zero if there are errored tasks' exit 1 fi @@ -12,9 +12,14 @@ set -e while : do out="$(ia tasks "$1")" - if ! grep -Fvq ' "finished": ' <<<"${out}" + out="$(python3 -c 'import json, sys; {print(o["status"]) for o in map(json.loads, sys.stdin) if "status" in o}' <<<"${out}")" + if [[ -z "${out}" ]] then break fi + if grep -Fxq 'error' <<<"${out}" + then + exit 1 + fi sleep 60 done