builder looks like it's working

This commit is contained in:
2024-07-26 00:27:20 -07:00
parent da629c05d8
commit 2dd622db73
8 changed files with 61 additions and 52 deletions
+26 -6
View File
@@ -11,13 +11,33 @@ process_env_vars() {
var_name="${env_var%%=*}" # Variable name var_name="${env_var%%=*}" # Variable name
var_value="${env_var#*=}" # Variable value var_value="${env_var#*=}" # Variable value
# Handle variables with and without default values # Check if the variable value contains a reference to another variable with the format ${VAR_NAME:-default}
if [[ "$var_value" == *'${'*:*'}'* ]]; then if [[ "$var_value" == *'${'*':'*'}'* ]]; then
# For variables with default values # Extract the variable inside the ${} braces
modified_var="${var_name}=\${${APP_NAME}_${var_value#\$\{}" ref_var="${var_value#\$\{}"
ref_var="${ref_var%%[:-]*}"
# Extract the default value part
default_value="${var_value##*:-}"
default_value="${default_value%\}}"
# Check if the reference variable already contains APP_NAME_ prefix
if [[ "$ref_var" == ${APP_NAME}_* ]]; then
# If it already contains the prefix, use it as is
modified_var="${var_name}=\${${ref_var}:-${default_value}}"
else
# If not, add the APP_NAME_ prefix
modified_var="${var_name}=\${${APP_NAME}_${ref_var}:-${default_value}}"
fi
else else
# For variables without default values # For variables without ${VAR_NAME} references
modified_var="${var_name}=\${${APP_NAME}_${var_name}:-${var_value}}" if [[ "$var_name" == ${APP_NAME}_* ]]; then
# If the variable name already starts with APP_NAME_, do not prefix again
modified_var="${var_name}=${var_value}"
else
# Add APP_NAME_ prefix for consistency
modified_var="${var_name}=\${${APP_NAME}_${var_name}:-${var_value}}"
fi
fi fi
# Append the modified variable to results # Append the modified variable to results
+1 -2
View File
@@ -18,5 +18,4 @@ EOF
) )
# Print the variable to verify the content # Print the variable to verify the content
echo "***** NEW docker-compose.yml *****" echo "$BLDR_NEW_DCF" > ${BLDR_DIR}/docker-compose.yml
echo "$BLDR_NEW_DCF"
+1 -2
View File
@@ -15,5 +15,4 @@ EOF
# Output the content to a file # Output the content to a file
BLDR_NEW_SE="$file_content" BLDR_NEW_SE="$file_content"
echo "***** Sample Extends *****" echo "$BLDR_NEW_SE" > ${BLDR_DIR}/sample-extends.yml
echo "$BLDR_NEW_SE"
+6 -6
View File
@@ -1,23 +1,23 @@
#!/bin/bash #!/bin/bash
BLDR_NEW_SE+="# $BLDR_APP\n" BLDR_ENV_FILE+="# $BLDR_APP\n"
BLDR_ENV_FILE+="COOKBOOK=$BLDR_PARENT_PATH #HELP: cookbooks\n"
while IFS= read -r line; do while IFS= read -r line; do
# Use a regex to match and extract variable names and defaults # Use a regex to match and extract variable names and defaults
if [[ $line =~ \$\{([A-Za-z_][A-Za-z0-9_]*)\} ]]; then if [[ $line =~ \$\{([A-Za-z_][A-Za-z0-9_]*)\} ]]; then
# Matched ${VAR_NAME} (without default) # Matched ${VAR_NAME} (without default)
var_name="${BASH_REMATCH[1]}" var_name="${BASH_REMATCH[1]}"
BLDR_NEW_SE+="${var_name}=\n" BLDR_ENV_FILE+="${var_name}=\n"
elif [[ $line =~ \$\{([A-Za-z_][A-Za-z0-9_]*)[:-](.*)\} ]]; then elif [[ $line =~ \$\{([A-Za-z_][A-Za-z0-9_]*)[:-](.*)\} ]]; then
# Matched ${VAR_DEF:-default} (with default) # Matched ${VAR_DEF:-default} (with default)
var_name="${BASH_REMATCH[1]}" var_name="${BASH_REMATCH[1]}"
default_value="${BASH_REMATCH[2]:1}" default_value="${BASH_REMATCH[2]:1}"
BLDR_NEW_SE+="${var_name}=${default_value}\n" BLDR_ENV_FILE+="${var_name}=${default_value}\n"
fi fi
done <<< "$BLDR_NEW_DCF" done <<< "$BLDR_NEW_DCF"
# Remove duplicates from the output # Remove duplicates from the output
BLDR_NEW_SE=$(echo -e "$BLDR_NEW_SE" | sort -u) BLDR_ENV_FILE=$(echo -e "$BLDR_ENV_FILE" | sort -u)
echo "***** NEW sample.env *****" echo "$BLDR_ENV_FILE" > ${BLDR_DIR}/sample.env
echo "$BLDR_NEW_SE"
+1 -2
View File
@@ -80,8 +80,7 @@ source ./_builder/extends-new.sh
################################################ ################################################
source ./_builder/readme-new.sh source ./_builder/readme-new.sh
BLDR_NEW_README=$(generate_readme) BLDR_NEW_README=$(generate_readme)
echo "***** README *****" echo "$BLDR_NEW_README" > ${BLDR_DIR}/README.md
echo "$BLDR_NEW_README"
# TODO: for readme file do mkdir -p data/vols for vols # TODO: for readme file do mkdir -p data/vols for vols
# Do a git diff on the directory # Do a git diff on the directory
+12 -14
View File
@@ -2,20 +2,18 @@ version: '3.4'
services: services:
stash: stash:
image: ${STASH_IMAGE:-stashapp/stash:latest} image: ${STASHAPP_IMAGE:-stashapp/stash:latest}
restart: unless-stopped restart: unless-stopped
environment: environment:
- STASH_STASH=${STASH_STASH:-/data/} - STASH_CACHE=${STASHAPP_STASH_CACHE:-/cache/}
- STASH_GENERATED=${STASH_GENERATED:-/generated/} - STASH_DOMAIN_NAME=${STASHAPP_STASH_DOMAIN_NAME:-stash.yourdomain.ca}
- STASH_METADATA=${STASH_METADATA:-/metadata/} - STASH_GENERATED=${STASHAPP_STASH_GENERATED:-/generated/}
- STASH_CACHE=${STASH_CACHE:-/cache/} - STASH_METADATA=${STASHAPP_STASH_METADATA:-/metadata/}
- STASH_STASH=${STASHAPP_STASH_STASH:-/data/}
volumes: volumes:
- "/etc/localtime:/etc/localtime:ro" - ${VOL_PATH:-./data}/stash-cache:/cache
- "${VOL_PATH:-./data}/stash-video:/data" - ${VOL_PATH:-./data}/stash-generated:/generated
- "${VOL_PATH:-./data}/stash-metadata:/metadata" - ${VOL_PATH:-./data}/stash-metadata:/metadata
- "${VOL_PATH:-./data}/stash-cache:/cache" - ${VOL_PATH:-./data}/stash-root:/root
- "${VOL_PATH:-./data}/stash-generated:/generated" - ${VOL_PATH:-./data}/stash-video:/data
- "${VOL_PATH:-./data}/stash-root:/root" - /etc/localtime:/etc/localtime:ro
# Uncomment and use if needed
# network_mode: "host"
+4 -8
View File
@@ -1,11 +1,7 @@
version: '3.4' version: '3.4'
services: services:
stash: stashapp:
extends: extends:
file: ${COOKBOOK}/stashapp/docker-compose.yml file: ${COOKBOOK}/stashapp/docker-compose.yml
service: stash service: stashapp
env_file:
- .env
ports:
- "9999:9999"
+10 -12
View File
@@ -1,12 +1,10 @@
# Stash App
PROD=prod.domain.com COOKBOOK=/home/nick/github/docker-compose-cookbooks #HELP: cookbooks
PRODDIR=/var/www/stashdomain-com/ #HELP: project_path # stashapp
COOKBOOK=/home/user/git/docker-compose-cookbooks #HELP: cookbooks STASHAPP_IMAGE=stashapp/stash:latest
VOL_PATH=/project-dir/project-name/data #HELP: volpath STASHAPP_STASH_CACHE=/cache/
STASH_IMAGE=stashapp/stash:v0.26.2 STASHAPP_STASH_DOMAIN_NAME=stash.yourdomain.ca
# Stash Container STASHAPP_STASH_GENERATED=/generated/
STASH_DOMAIN_NAME=stash.4lt.ca STASHAPP_STASH_METADATA=/metadata/
STASH_STASH=/data/ STASHAPP_STASH_STASH=/data/
STASH_GENERATED=/generated/ VOL_PATH=./data
STASH_METADATA=/metadata/
STASH_CACHE=/cache/