diff --git a/data/scripts/o b/data/scripts/o index c2623af..373bd03 100755 --- a/data/scripts/o +++ b/data/scripts/o @@ -349,8 +349,16 @@ cmd_approve() { echo "[$id] approving: $cmd" echo " cwd: $cwd" - printf '%s approve' "$id" | ollie-9p write "$bypass_path" - echo "approved" + local result + result=$(printf '%s approve' "$id" | ollie-9p write "$bypass_path" 2>&1) + if [[ $? -eq 0 ]]; then + echo "approved" + elif [[ "$result" == *"unknown request ID"* ]]; then + echo "request already resolved (expired or handled elsewhere)" + else + echo "error: $result" >&2 + exit 1 + fi } cmd_deny() { @@ -396,8 +404,16 @@ cmd_deny() { echo "[$id] denying: $cmd" echo " cwd: $cwd" - printf '%s deny' "$id" | ollie-9p write "$bypass_path" - echo "denied" + local result + result=$(printf '%s deny' "$id" | ollie-9p write "$bypass_path" 2>&1) + if [[ $? -eq 0 ]]; then + echo "denied" + elif [[ "$result" == *"unknown request ID"* ]]; then + echo "request already resolved (expired or handled elsewhere)" + else + echo "error: $result" >&2 + exit 1 + fi } cmd_new() {