From a1985ce1b200550e91c5cb42a8d19899dcec831e Mon Sep 17 00:00:00 2001 From: Elias Schneider Date: Wed, 23 Oct 2024 10:03:17 +0200 Subject: [PATCH] feat: add script for creating one time access token --- Dockerfile | 1 + scripts/create-one-time-access-token.sh | 69 +++++++++++++++++++++++++ 2 files changed, 70 insertions(+) create mode 100644 scripts/create-one-time-access-token.sh diff --git a/Dockerfile b/Dockerfile index 6d7087e..b11432e 100644 --- a/Dockerfile +++ b/Dockerfile @@ -36,6 +36,7 @@ COPY --from=backend-builder /app/backend/email-templates ./backend/email-templat COPY --from=backend-builder /app/backend/images ./backend/images COPY ./scripts ./scripts +RUN chmod +x ./scripts/*.sh EXPOSE 3000 ENV APP_ENV=production diff --git a/scripts/create-one-time-access-token.sh b/scripts/create-one-time-access-token.sh new file mode 100644 index 0000000..0d61a5d --- /dev/null +++ b/scripts/create-one-time-access-token.sh @@ -0,0 +1,69 @@ +#!/bin/bash + +# Default database path +DB_PATH="./backend/data/pocket-id.db" + +# Parse command-line arguments for the -d flag (database path) +while getopts ":d:" opt; do + case $opt in + d) + DB_PATH="$OPTARG" + ;; + \?) + echo "Invalid option -$OPTARG" >&2 + exit 1 + ;; + esac +done + +shift $((OPTIND - 1)) + +# Ensure username or email is provided as a parameter +if [ -z "$1" ]; then + echo "Usage: $0 [-d ] " + echo " -d Specify the database path (optional, defaults to ./backend/data/pocket-id.db)" + exit 1 +fi + +USER_IDENTIFIER="$1" + +# Check if sqlite3 is installed, if not install it via apk +if ! command -v sqlite3 &>/dev/null; then + if command -v apk &>/dev/null; then + echo "sqlite3 not found. Installing..." + apk add sqlite3 --no-cache + else + echo "sqlite3 is not installed, please install it manually." + exit 1 + fi +fi + +# Generate a 16-character alphanumeric secret token +SECRET_TOKEN=$(LC_ALL=C tr -dc 'A-Za-z0-9' /login/$SECRET_TOKEN" +else + echo "Error creating access token." + exit 1 +fi