mirror of
https://github.com/Tyrrrz/DiscordChatExporter.git
synced 2026-09-30 13:10:10 -05:00
feat(scrape): optional DCE_CONTAINER_MEMORY compose mem_limit
Operators can raise the scrape container memory cap for large channel catch-up (e.g. yes_general) via scrape.env without changing default runs.
This commit is contained in:
@@ -42,6 +42,7 @@ Environment:
|
||||
DCE_REAUTH_COMMAND Optional absolute path to an executable reauth script under the repo root.
|
||||
DCE_COMPOSE_TTY When zero, compose run passes -T (no pseudo-TTY). Default omits -T
|
||||
so compose backends allocate a TTY for line-buffered progress logs.
|
||||
DCE_CONTAINER_MEMORY Optional container memory cap (e.g. 8g, 8192m). Default 0 = unlimited.
|
||||
|
||||
Notes:
|
||||
When $ENV_FILE is missing, exported DISCORD_TOKEN or DISCORD_TOKEN_FILE is used instead.
|
||||
@@ -183,6 +184,11 @@ write_compose_env_temp() {
|
||||
if [[ -n "${DCE_GID:-}" ]]; then
|
||||
printf 'DCE_GID=%s\n' "$DCE_GID" >>"$COMPOSE_ENV_TEMP"
|
||||
fi
|
||||
if [[ -n "${DCE_CONTAINER_MEMORY:-}" ]]; then
|
||||
printf 'DCE_CONTAINER_MEMORY=%s\n' "$DCE_CONTAINER_MEMORY" >>"$COMPOSE_ENV_TEMP"
|
||||
else
|
||||
printf 'DCE_CONTAINER_MEMORY=0\n' >>"$COMPOSE_ENV_TEMP"
|
||||
fi
|
||||
}
|
||||
|
||||
configure_rootless_compose() {
|
||||
|
||||
@@ -195,7 +195,28 @@ COMPOSE_TTY_LOG="$TMP_DIR/compose-tty-default.log"
|
||||
FAKE_COMPOSE="$TMP_DIR/fake-compose"
|
||||
cat >"$FAKE_COMPOSE" <<'EOF'
|
||||
#!/usr/bin/env bash
|
||||
printf '%s\n' "$*" >>"${FAKE_COMPOSE_ARGS_LOG:?}"
|
||||
all_args=( "$@" )
|
||||
while (($#)); do
|
||||
case "$1" in
|
||||
--env-file)
|
||||
if [[ $# -ge 2 && -f "$2" ]]; then
|
||||
while IFS='=' read -r env_key env_value || [[ -n "$env_key" ]]; do
|
||||
[[ -z "$env_key" || "$env_key" =~ ^# ]] && continue
|
||||
env_key=${env_key#export }
|
||||
env_key=${env_key%%[[:space:]]*}
|
||||
printf -v "$env_key" '%s' "$env_value"
|
||||
export "$env_key"
|
||||
done <"$2"
|
||||
fi
|
||||
shift 2
|
||||
;;
|
||||
*)
|
||||
shift
|
||||
;;
|
||||
esac
|
||||
done
|
||||
printf 'env:DCE_CONTAINER_MEMORY=%s\n' "${DCE_CONTAINER_MEMORY:-}" >>"${FAKE_COMPOSE_ARGS_LOG:?}"
|
||||
printf '%s\n' "${all_args[*]}" >>"${FAKE_COMPOSE_ARGS_LOG:?}"
|
||||
printf 'run succeeded\n'
|
||||
EOF
|
||||
chmod +x "$FAKE_COMPOSE"
|
||||
@@ -220,4 +241,17 @@ grep -qE '(^|[[:space:]])-T([[:space:]]|$)' "$COMPOSE_NOTTY_LOG" || {
|
||||
exit 1
|
||||
}
|
||||
|
||||
MEM_ENV="$TMP_DIR/mem.env"
|
||||
cat >"$MEM_ENV" <<EOF
|
||||
DISCORD_TOKEN=dummy
|
||||
DCE_CONTAINER_MEMORY=8g
|
||||
EOF
|
||||
COMPOSE_MEM_LOG="$TMP_DIR/compose-mem.log"
|
||||
run_host_compose_capture "$MEM_ENV" "$FAKE_COMPOSE" "$COMPOSE_MEM_LOG" >/dev/null
|
||||
grep -q 'env:DCE_CONTAINER_MEMORY=8g' "$COMPOSE_MEM_LOG" || {
|
||||
echo "expected DCE_CONTAINER_MEMORY=8g in compose env file passthrough" >&2
|
||||
cat "$COMPOSE_MEM_LOG" >&2
|
||||
exit 1
|
||||
}
|
||||
|
||||
echo "run-discord-scrape-host smoke test passed"
|
||||
|
||||
Reference in New Issue
Block a user