mirror of
https://github.com/seanbetts/steam-hardware-watch.git
synced 2026-10-06 01:00:18 +02:00
Persist SteamKit auth sessions
This commit is contained in:
1 parent
692cef0abb
commit
fc0a08825d
6 files changed
+437
-50
No files matched your search
@@ -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
|
||||
|
||||
Executable
+38
@@ -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"
|
||||
Reference in new issue
Block a user