===================================================================== --- Changes ------------------------------ - split up environment files per scwrypts group - updated i3/launch-or-show to provide some new options --- Bug Fixes ---------------------------- - utils/io commands like 'STATUS' no longer throw errors '%' characters - fixed ERROR_CHECK function calls to CHECK_ERRORS
39 lines
1.2 KiB
Bash
Executable File
39 lines
1.2 KiB
Bash
Executable File
#!/bin/zsh
|
|
DEPENDENCIES+=()
|
|
REQUIRED_ENV+=()
|
|
|
|
use scwrypts/environment-files
|
|
|
|
CHECK_ENVIRONMENT
|
|
#####################################################################
|
|
|
|
PROMPT 'choose an environment to copy'
|
|
TEMPLATE_ENV_NAME=$(SCWRYPTS__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
|
|
SCWRYPTS__GET_ENV_NAMES | grep -q $ENV_NAME && FAIL 1 "'$ENV_NAME' already exists"
|
|
|
|
for GROUP in ${SCWRYPTS_GROUPS[@]}
|
|
do
|
|
TEMPLATE_ENV_FILE=$(SCWRYPTS__GET_ENV_FILE $TEMPLATE_ENV_NAME $GROUP 2>/dev/null)
|
|
ENV_FILE=$(SCWRYPTS__GET_ENV_FILE $ENV_NAME $GROUP 2>/dev/null)
|
|
|
|
STATUS "creating environment '$ENV_NAME'"
|
|
cat "$TEMPLATE_ENV_FILE" \
|
|
| sed 's/ # from.*//' \
|
|
> "$ENV_FILE" \
|
|
&& SUCCESS "created '$ENV_FILE'" \
|
|
|| FAIL 2 "something went wrong creating '$ENV_FILE'"
|
|
done
|
|
|
|
STATUS "synchronizing environments"
|
|
SCWRYPTS__RUN --name scwrypts/environment/synchronize --group scwrypts --type zsh -- --no-prompt \
|
|
&& SUCCESS "finished copy environment '$TEMPLATE_ENV_NAME > $ENV_NAME'" \
|
|
|| FAIL 3 'error during synchronization of new environment (see above)' \
|
|
;
|