===================================================================== Subscwrypts + Environment Inheritance --- Release Notes ------------------------ - added support for environment inheritance - added support for arbitrarily nested scripts (subscwrypts) - added support for CI mode - improved modularity of zsh/utils module - refactored to move some data from ~/.config/scwrypts to ~/.local/share/scwrypts - refactored various scripts to use new subscwrypt api --- New Scripts -------------------------- zsh ) - db/interactive/postgres - aws/rds/interactive-login
38 lines
1.1 KiB
Bash
Executable File
38 lines
1.1 KiB
Bash
Executable File
#!/bin/zsh
|
|
_DEPENDENCIES+=()
|
|
_REQUIRED_ENV+=()
|
|
source ${0:a:h}/common.zsh
|
|
#####################################################################
|
|
|
|
__PROMPT 'choose an environment to copy'
|
|
TEMPLATE_ENV_NAME=$(__SELECT_ENV)
|
|
[ ! $TEMPLATE_ENV_NAME ] && __ABORT
|
|
|
|
__STATUS "selected '$TEMPLATE_ENV_NAME'"
|
|
|
|
__PROMPT 'enter new environment name'
|
|
ENV_NAME=$(echo '' | __FZF_HEAD 'new environment')
|
|
[ ! $ENV_NAME ] && __ABORT
|
|
|
|
TEMPLATE_ENV_FILE=$(__GET_ENV_FILE $TEMPLATE_ENV_NAME)
|
|
ENV_FILE=$(__GET_ENV_FILE $ENV_NAME)
|
|
|
|
[ -f "$ENV_FILE" ] && __FAIL 2 "'$ENV_NAME' already exists"
|
|
|
|
__STATUS "creating environment '$ENV_NAME'"
|
|
cp "$TEMPLATE_ENV_FILE" "$ENV_FILE" \
|
|
&& __SUCCESS "created '$ENV_NAME'" \
|
|
|| __FAIL 3 "unable to create '$ENV_NAME'"
|
|
|
|
__STATUS 'stripping inherited values'
|
|
sed -i 's/ # inherited from.*$//' "$ENV_FILE" 2>/dev/null
|
|
|
|
__RUN_SCWRYPT zsh/scwrypts/environment/synchronize -- --no-prompt \
|
|
|| __FAIL 4 'failed to run environment sync'
|
|
|
|
__RUN_SCWRYPT zsh/scwrypts/environment/edit -- $ENV_NAME \
|
|
|| __FAIL 4 'failed to edit new environment'
|
|
;
|
|
|
|
__SUCCESS "finished copy environment '$TEMPLATE_ENV_NAME > $ENV_NAME'"
|