Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01Jm2auWk6RP71CjaAb4FMoG
20 lines
979 B
Bash
Executable File
20 lines
979 B
Bash
Executable File
#!/bin/bash
|
|
# Answer a player's feedback report; the reply appears under it in their
|
|
# lobby ledger. Legacy reports without an id answer to their timestamp.
|
|
# deploy/feedback-reply.sh <host> <reportId> <resolved|by-design|open> <text...>
|
|
set -euo pipefail
|
|
HOST="${1:?usage: feedback-reply.sh <host> <reportId> <status> <text...>}"
|
|
REPORT_ID="${2:?usage: feedback-reply.sh <host> <reportId> <status> <text...>}"
|
|
STATUS="${3:?usage: feedback-reply.sh <host> <reportId> <status> <text...>}"
|
|
shift 3
|
|
TEXT="$*"
|
|
case "$STATUS" in resolved|by-design|open) ;; *) echo "status must be resolved, by-design, or open" >&2; exit 1;; esac
|
|
LINE=$(REPORT_ID="$REPORT_ID" STATUS="$STATUS" TEXT="$TEXT" node -e '
|
|
console.log(JSON.stringify({
|
|
reportId: process.env.REPORT_ID,
|
|
at: new Date().toISOString(),
|
|
status: process.env.STATUS,
|
|
text: process.env.TEXT,
|
|
}));')
|
|
printf '%s\n' "$LINE" | ssh "root@$HOST" 'cat >> /var/lib/wizwar/feedback.jsonl && tail -1 /var/lib/wizwar/feedback.jsonl'
|