mirror of
https://github.com/Tyrrrz/DiscordChatExporter.git
synced 2026-06-10 00:02:37 -06:00
One command validates compose, auth, config, and seeded archives before bootstrap or cron. Includes offline smoke test (14 smokes total).
60 lines
1.5 KiB
Bash
Executable file
60 lines
1.5 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
|
|
set -Eeuo pipefail
|
|
|
|
REPO_ROOT=$(cd "$(dirname "${BASH_SOURCE[0]}")/../.." && pwd -P)
|
|
VERIFY="$REPO_ROOT/scripts/verify-operator-ready.sh"
|
|
TMP_DIR=$(mktemp -d "${TMPDIR:-/tmp}/dce-op-ready-smoke.XXXXXX")
|
|
ARCHIVE_ROOT="$TMP_DIR/archive"
|
|
CONFIG_PATH="$TMP_DIR/config.json"
|
|
ENV_PATH="$TMP_DIR/scrape.env"
|
|
FAKE_DOCKER="$TMP_DIR/docker"
|
|
PATH_BACKUP="$PATH"
|
|
|
|
cleanup() {
|
|
export PATH="$PATH_BACKUP"
|
|
rm -rf "$TMP_DIR"
|
|
}
|
|
trap cleanup EXIT
|
|
|
|
mkdir -p "$ARCHIVE_ROOT/demo"
|
|
printf '{"messages":[{"id":"1"}],"channel":{"id":"111111111111111111"}}\n' \
|
|
>"$ARCHIVE_ROOT/demo/Guild - general [111111111111111111].json"
|
|
|
|
cat >"$CONFIG_PATH" <<JSON
|
|
{
|
|
"archive_root": "$ARCHIVE_ROOT",
|
|
"targets": [
|
|
{
|
|
"name": "demo",
|
|
"kind": "guild",
|
|
"output_dir": "$ARCHIVE_ROOT/demo",
|
|
"enabled": true
|
|
}
|
|
]
|
|
}
|
|
JSON
|
|
|
|
printf 'DISCORD_TOKEN=dummy\n' >"$ENV_PATH"
|
|
|
|
cat >"$FAKE_DOCKER" <<'EOF'
|
|
#!/usr/bin/env bash
|
|
if [[ "${1:-}" == "compose" && "${2:-}" == "version" ]]; then
|
|
exit 0
|
|
fi
|
|
exit 1
|
|
EOF
|
|
chmod +x "$FAKE_DOCKER"
|
|
export PATH="$TMP_DIR:$PATH_BACKUP"
|
|
|
|
DCE_REPO_ROOT="$REPO_ROOT" DCE_CONFIG_FILE="$CONFIG_PATH" DCE_ENV_FILE="$ENV_PATH" \
|
|
"$VERIFY" --config "$CONFIG_PATH"
|
|
|
|
if DCE_REPO_ROOT="$REPO_ROOT" DCE_CONFIG_FILE="$CONFIG_PATH" DCE_ENV_FILE="$ENV_PATH" \
|
|
"$VERIFY" --config "$CONFIG_PATH" --preflight demo 2>/dev/null; then
|
|
printf 'ERROR: preflight should fail without real container/token\n' >&2
|
|
exit 1
|
|
fi
|
|
|
|
printf 'verify-operator-ready-smoke: ok\n'
|