2024-04-12 09:40:14 +02:00
|
|
|
#!/bin/bash -e
|
2024-01-18 16:35:45 +01:00
|
|
|
|
|
|
|
|
main() {
|
2024-08-05 12:06:20 +02:00
|
|
|
generate_api_secrets
|
2024-01-18 16:35:45 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
generate_api_secrets() {
|
|
|
|
|
if ! is_configured; then
|
2024-08-05 12:06:20 +02:00
|
|
|
echo "Generating shared secret..."
|
2024-04-12 09:40:14 +02:00
|
|
|
SECRET="$(random_string)"
|
2024-08-05 12:06:20 +02:00
|
|
|
add_secret_to_env_file /secrets/client.env NUXT_API_SECRET "$SECRET"
|
|
|
|
|
add_secret_to_env_file /secrets/api.env FRONT_API_SECRET "$SECRET"
|
2024-01-18 16:35:45 +01:00
|
|
|
fi
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
random_string() {
|
|
|
|
|
array=()
|
2024-08-05 12:06:20 +02:00
|
|
|
for i in {a..z} {A..Z} {0..9};
|
2024-01-18 16:35:45 +01:00
|
|
|
do
|
|
|
|
|
array[$RANDOM]=$i
|
|
|
|
|
done
|
|
|
|
|
printf %s ${array[@]::8} $'\n'
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
add_secret_to_env_file() {
|
|
|
|
|
FILE=$1
|
|
|
|
|
TEMP_FILE=/tmp/env.$$
|
|
|
|
|
VAR=$2
|
|
|
|
|
VAL=$3
|
|
|
|
|
|
2024-08-05 12:06:20 +02:00
|
|
|
grep -q "^$VAR=" "$FILE" 2>/dev/null || ( echo "$VAR=" >> "$FILE" )
|
2024-01-18 16:35:45 +01:00
|
|
|
|
|
|
|
|
cp $FILE $TEMP_FILE
|
|
|
|
|
sed "s/^$VAR=.*$/$VAR=$VAL/" -i $TEMP_FILE
|
|
|
|
|
cat $TEMP_FILE > $FILE
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
is_configured() {
|
2024-08-05 12:06:20 +02:00
|
|
|
grep -q "FRONT_API_SECRET=.\+" .env 2>/dev/null
|
2024-01-18 16:35:45 +01:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
main
|