Persist SteamKit auth sessions

This commit is contained in:
seanbetts committed 2026-05-11 11:44:57 +01:00
1 parent 692cef0abb
commit fc0a08825d
6 files changed
+437 -50

No files matched your search

+9 -1
View File
@@ -12,6 +12,7 @@ REPORT_DIR="$RUN_DIR/reports"
SCRIPT_DIR="$(CDPATH= cd -- "$(dirname "$0")" && pwd)"
REPO_DIR="$(CDPATH= cd -- "$SCRIPT_DIR/.." && pwd)"
PROJECT_DIR="$REPO_DIR/tools/steamkit-pics"
SESSION_FILE="${STEAMKIT_SESSION_FILE:-$REPO_DIR/.local/steamkit-session.json}"
mkdir -p "$OUT_DIR" "$REPORT_DIR"
ERROR_FILE="$REPORT_DIR/steamkit-pics-errors.txt"
@@ -84,7 +85,12 @@ write_unavailable_report() {
load_local_env
if [ -z "${STEAMKIT_USERNAME:-}" ] || { [ -z "${STEAMKIT_PASSWORD:-}" ] && [ -z "${STEAMKIT_ACCESS_TOKEN:-}" ]; }; then
HAS_SESSION=0
if [ -s "$SESSION_FILE" ]; then
HAS_SESSION=1
fi
if [ "$HAS_SESSION" = "0" ] && { [ -z "${STEAMKIT_USERNAME:-}" ] || { [ -z "${STEAMKIT_PASSWORD:-}" ] && [ -z "${STEAMKIT_ACCESS_TOKEN:-}" ]; }; }; then
detail="STEAMKIT_USERNAME/STEAMKIT_PASSWORD not set"
if [ -n "${STEAMKIT_USERNAME:-}" ] && [ -z "${STEAMKIT_PASSWORD:-}" ]; then
detail="STEAMKIT_PASSWORD or STEAMKIT_ACCESS_TOKEN not set"
@@ -135,6 +141,7 @@ if [ -n "$PREVIOUS_REPORT" ]; then
--report "$REPORT_FILE" \
--key-lines "$KEY_LINES_FILE" \
--markdown-report "$DETAIL_REPORT_FILE" \
--session-file "$SESSION_FILE" \
--previous-report "$PREVIOUS_REPORT" \
>> "$REPORT_DIR/steamkit-pics-dotnet.log" 2>> "$ERROR_FILE"; then
detail="SteamKit/PICS helper failed; see steamkit-pics-errors.txt and steamkit-pics-dotnet.log"
@@ -149,6 +156,7 @@ else
--report "$REPORT_FILE" \
--key-lines "$KEY_LINES_FILE" \
--markdown-report "$DETAIL_REPORT_FILE" \
--session-file "$SESSION_FILE" \
>> "$REPORT_DIR/steamkit-pics-dotnet.log" 2>> "$ERROR_FILE"; then
detail="SteamKit/PICS helper failed; see steamkit-pics-errors.txt and steamkit-pics-dotnet.log"
if [ ! -s "$REPORT_FILE" ]; then
+38
View File
@@ -0,0 +1,38 @@
#!/bin/sh
set -eu
SCRIPT_DIR="$(CDPATH= cd -- "$(dirname "$0")" && pwd)"
REPO_DIR="$(CDPATH= cd -- "$SCRIPT_DIR/.." && pwd)"
PROJECT_DIR="$REPO_DIR/tools/steamkit-pics"
ENV_FILE="${STEAMKIT_ENV_FILE:-$REPO_DIR/.local/steamkit-env.sh}"
SESSION_FILE="${STEAMKIT_SESSION_FILE:-$REPO_DIR/.local/steamkit-session.json}"
if [ -f "$ENV_FILE" ]; then
# shellcheck disable=SC1090
. "$ENV_FILE"
fi
if [ -z "${STEAMKIT_USERNAME:-}" ] || [ -z "${STEAMKIT_PASSWORD:-}" ]; then
echo "STEAMKIT_USERNAME and STEAMKIT_PASSWORD are required in $ENV_FILE or the environment" >&2
exit 1
fi
export STEAMKIT_USERNAME STEAMKIT_PASSWORD
if [ -n "${STEAMKIT_AUTH_CODE:-}" ]; then
export STEAMKIT_AUTH_CODE
fi
if [ -n "${STEAMKIT_TWO_FACTOR_CODE:-}" ]; then
export STEAMKIT_TWO_FACTOR_CODE
fi
if [ -n "${STEAMKIT_ACCEPT_MOBILE_CONFIRMATION:-}" ]; then
export STEAMKIT_ACCEPT_MOBILE_CONFIRMATION
fi
if [ -n "${STEAMKIT_TIMEOUT_SECONDS:-}" ]; then
export STEAMKIT_TIMEOUT_SECONDS
fi
mkdir -p "$(dirname "$SESSION_FILE")"
dotnet run --project "$PROJECT_DIR" -- --auth-session-out "$SESSION_FILE" --session-file "$SESSION_FILE"
chmod 600 "$SESSION_FILE"
printf '%s\n' "Saved SteamKit session to $SESSION_FILE"