forked from keephq/keep
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsetup.sh
executable file
·78 lines (65 loc) · 2.29 KB
/
setup.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/bin/bash
STATE_DIRECTORY="state"
# Define secrets for frontend and backend
frontend_secrets=(
"NEXTAUTH_URL:http://localhost:3000"
"NEXTAUTH_SECRET:{openssl rand -hex 32}"
"API_URL:http://backend:8080"
"AUTH_ENABLED:false"
"AUTH0_CLIENT_ID:"
"AUTH0_CLIENT_SECRET:"
"AUTH0_ISSUER:"
)
backend_secrets=(
"DATABASE_CONNECTION_STRING:sqlite:////state/db.sqlite3"
"SECRET_MANAGER_DIRECTORY:state"
"SECRET_MANAGER_TYPE:FILE"
"AUTH0_DOMAIN:your-domain.us.auth0.com"
"AUTH0_AUDIENCE:vx2pdcpVnDPaIeFLdzwn3J9M7RZp2KEv"
)
# Function to prompt user for secrets
prompt_for_secrets() {
local service=$1
local secrets=("${!2}")
echo "Setting up secrets for $service..."
echo "If you do not have a value for a secret, leave it blank and press enter."
# Loop through the secrets and prompt the user for input
for secret in "${secrets[@]}"; do
IFS=':' read -ra secret_info <<< "$secret"
secret_name=${secret_info[0]}
default_value=$(IFS=':'; echo "${secret_info[*]:1}")
# Evaluate command as default value
if [[ $default_value == \{* ]]; then
command=$(echo "$default_value" | sed 's/[{}]//g')
default_value=$(eval "$command")
fi
read -p "Enter the $secret_name for $service [Default: $default_value]: " secret_value
# Use default value if user input is empty
if [ -z "$secret_value" ]; then
secret_value=$default_value
fi
echo "$secret_name=$secret_value" >> "./$STATE_DIRECTORY/$service.env"
done
}
# Check if the secrets file exists for the specified service
check_and_create_secrets() {
local service=$1
local secrets=("${!2}")
if [ ! -f "./$STATE_DIRECTORY/$service.env" ]; then
touch "./$STATE_DIRECTORY/$service.env"
prompt_for_secrets "$service" secrets[@]
else
echo "Environment variable file for $service (./$STATE_DIRECTORY/$service.env) already exists. Skipping..."
fi
}
# Check the parameter to determine which service to set up
if [ "$1" == "frontend" ]; then
check_and_create_secrets "frontend" frontend_secrets[@]
elif [ "$1" == "backend" ]; then
check_and_create_secrets "backend" backend_secrets[@]
else
check_and_create_secrets "frontend" frontend_secrets[@]
check_and_create_secrets "backend" backend_secrets[@]
# echo "Invalid service specified. Usage: ./setup.sh <frontend|backend>"
# exit 1
fi