diff options
Diffstat (limited to 'priv/templates')
-rwxr-xr-x | priv/templates/extended_bin | 82 |
1 files changed, 30 insertions, 52 deletions
diff --git a/priv/templates/extended_bin b/priv/templates/extended_bin index 06c7242..6eee7a5 100755 --- a/priv/templates/extended_bin +++ b/priv/templates/extended_bin @@ -114,63 +114,41 @@ relx_get_code_paths() { "$BINDIR/erl" -noshell -boot start_clean -eval "$code" } -# Use $CWD/vm.args if exists, otherwise releases/VSN/vm.args -if [ -z "$VMARGS_PATH" ]; then - if [ -f "$RELEASE_ROOT_DIR/vm.args" ]; then - VMARGS_PATH="$RELEASE_ROOT_DIR/vm.args" - else - VMARGS_PATH="$REL_DIR/vm.args" - fi -fi - -# Use $CWD/sys.config if exists, otherwise releases/VSN/sys.config -if [ -z "$RELX_CONFIG_PATH" ]; then - if [ -f "$RELEASE_ROOT_DIR/sys.config" ]; then - RELX_CONFIG_PATH="$RELEASE_ROOT_DIR/sys.config" - else - RELX_CONFIG_PATH="$REL_DIR/sys.config" - fi -fi - -orig_vmargs_path="$VMARGS_PATH.orig" -if [ $RELX_REPLACE_OS_VARS ]; then - # if there is no vm.args.orig then make a copy of the - # the original vm.args - if [ ! -f "$orig_vmargs_path" ]; then - mv "$VMARGS_PATH" "$orig_vmargs_path" +check_replace_os_vars() { + # Use $CWD/$1 if exists, otherwise releases/VSN/$1 + IN_FILE_PATH=$2 + if [ -z "$IN_FILE_PATH" ]; then + if [ -f "$RELEASE_ROOT_DIR/$1" ]; then + IN_FILE_PATH="$RELEASE_ROOT_DIR/$1" + else + IN_FILE_PATH="$REL_DIR/$1" + fi fi - # apply the environment variable substitution to vm.args.orig - # the result is saved to vm.args - awk '{while(match($0,"[$]{[^}]*}")) {var=substr($0,RSTART+2,RLENGTH -3);gsub("[$]{"var"}",ENVIRON[var])}}1' < "$orig_vmargs_path" > "$VMARGS_PATH" -else - # if a vm.args.orig is present this means that - # env variable substitution has occurred before - # so use the original - if [ -f "$orig_vmargs_path" ]; then - mv "$orig_vmargs_path" "$VMARGS_PATH" - fi -fi + OUT_FILE_PATH="$IN_FILE_PATH" + ORIG_FILE_PATH="$IN_FILE_PATH.orig" + if [ $RELX_REPLACE_OS_VARS ]; then + # Create a new file in /tmp + OUT_FILE_PATH=$(mktemp /tmp/XXXXXX.$REL_NAME.$1) + # If vm.args.orig or sys.config.orig is present then use that + if [ -f "$ORIG_FILE_PATH" ]; then + IN_FILE_PATH="$ORIG_FILE_PATH" + fi -orig_relx_config_path="$RELX_CONFIG_PATH.orig" -if [ $RELX_REPLACE_OS_VARS ]; then - # if there is no sys.config.orig then make a copy of the - # the original sys.config - if [ ! -f "$orig_relx_config_path" ]; then - mv "$RELX_CONFIG_PATH" "$orig_relx_config_path" + # apply the environment variable substitution to $IN_FILE_PATH + # the result is saved to $OUT_FILE_PATH + awk '{while(match($0,"[$]{[^}]*}")) {var=substr($0,RSTART+2,RLENGTH -3);gsub("[$]{"var"}",ENVIRON[var])}}1' < "$IN_FILE_PATH" > "$OUT_FILE_PATH" + else + # If vm.arg.orig or sys.config.orig is present then use that + if [ -f "$ORIG_FILE_PATH" ]; then + OUT_FILE_PATH="$ORIG_FILE_PATH" + fi fi + echo $OUT_FILE_PATH +} - # apply the environment variable substitution to sys.config.orig - # the result is saved to sys.config - awk '{while(match($0,"[$]{[^}]*}")) {var=substr($0,RSTART+2,RLENGTH -3);gsub("[$]{"var"}",ENVIRON[var])}}1' < "$orig_relx_config_path" > "$RELX_CONFIG_PATH" -else - # if a sys.config.orig is present this means that - # env variable substitution has occurred before - # so use the original - if [ -f "$orig_relx_config_path" ]; then - mv "$orig_relx_config_path" "$RELX_CONFIG_PATH" - fi -fi +VMARGS_PATH=$(check_replace_os_vars vm.args $VMARGS_PATH) +RELX_CONFIG_PATH=$(check_replace_os_vars sys.config $RELX_CONFIG_PATH) # Make sure log directory exists mkdir -p "$RUNNER_LOG_DIR" |