mirror of
https://github.com/documenso/documenso.git
synced 2025-11-12 07:43:16 +10:00
78 lines
3.0 KiB
Bash
Executable File
78 lines
3.0 KiB
Bash
Executable File
#!/usr/bin/env bash
|
|
|
|
# Set Error handling
|
|
set -eu
|
|
|
|
SCRIPT_DIR="$(readlink -f "$(dirname "$0")")"
|
|
WEB_APP_DIR="$SCRIPT_DIR/.."
|
|
|
|
# Store the original directory
|
|
ORIGINAL_DIR=$(pwd)
|
|
|
|
# Set up trap to ensure we return to original directory
|
|
trap 'cd "$ORIGINAL_DIR"' EXIT
|
|
|
|
cd "$WEB_APP_DIR"
|
|
|
|
# Define env file paths
|
|
ENV_LOCAL_FILE="../../.env.local"
|
|
|
|
# Function to load environment variable from env files
|
|
load_env_var() {
|
|
local var_name=$1
|
|
local var_value=""
|
|
|
|
if [ -f "$ENV_LOCAL_FILE" ]; then
|
|
var_value=$(grep "^$var_name=" "$ENV_LOCAL_FILE" | cut -d '=' -f2)
|
|
fi
|
|
|
|
# Remove quotes if present
|
|
var_value=$(echo "$var_value" | sed 's/^"\(.*\)"$/\1/' | sed "s/^'\(.*\)'$/\1/")
|
|
|
|
echo "$var_value"
|
|
}
|
|
|
|
NEXT_PUBLIC_FEATURE_BILLING_ENABLED=$(load_env_var "NEXT_PUBLIC_FEATURE_BILLING_ENABLED")
|
|
|
|
# Check if NEXT_PUBLIC_FEATURE_BILLING_ENABLED is equal to true
|
|
if [ "$NEXT_PUBLIC_FEATURE_BILLING_ENABLED" != "true" ]; then
|
|
echo "[ERROR]: NEXT_PUBLIC_FEATURE_BILLING_ENABLED must be enabled."
|
|
exit 1
|
|
fi
|
|
|
|
# 1. Load NEXT_PRIVATE_STRIPE_API_KEY from env files
|
|
NEXT_PRIVATE_STRIPE_API_KEY=$(load_env_var "NEXT_PRIVATE_STRIPE_API_KEY")
|
|
|
|
# Check if NEXT_PRIVATE_STRIPE_API_KEY exists
|
|
if [ -z "$NEXT_PRIVATE_STRIPE_API_KEY" ]; then
|
|
echo "[ERROR]: NEXT_PRIVATE_STRIPE_API_KEY not found in environment files."
|
|
echo "[ERROR]: Please make sure it's set in $ENV_LOCAL_FILE"
|
|
exit 1
|
|
fi
|
|
|
|
# 2. Check if stripe CLI is installed
|
|
if ! command -v stripe &> /dev/null; then
|
|
echo "[ERROR]: Stripe CLI is not installed or not in PATH."
|
|
echo "[ERROR]: Please install the Stripe CLI: https://stripe.com/docs/stripe-cli"
|
|
exit 1
|
|
fi
|
|
|
|
# 3. Check if NEXT_PRIVATE_STRIPE_WEBHOOK_SECRET env key exists
|
|
NEXT_PRIVATE_STRIPE_WEBHOOK_SECRET=$(load_env_var "NEXT_PRIVATE_STRIPE_WEBHOOK_SECRET")
|
|
|
|
if [ -z "$NEXT_PRIVATE_STRIPE_WEBHOOK_SECRET" ]; then
|
|
echo "╔═════════════════════════════════════════════════════════════════════╗"
|
|
echo "║ ║"
|
|
echo "║ ! WARNING: NEXT_PRIVATE_STRIPE_WEBHOOK_SECRET MISSING ! ║"
|
|
echo "║ ║"
|
|
echo "║ Copy the webhook signing secret which will appear in the terminal ║"
|
|
echo "║ soon into the env file. ║"
|
|
echo "║ ║"
|
|
echo "║ The webhook secret will start with whsec_... ║"
|
|
echo "║ ║"
|
|
echo "╚═════════════════════════════════════════════════════════════════════╝"
|
|
fi
|
|
|
|
echo "[INFO]: Starting Stripe webhook listener..."
|
|
stripe listen --api-key "$NEXT_PRIVATE_STRIPE_API_KEY" --forward-to http://localhost:3000/api/stripe/webhook
|