#!/bin/zsh
use scwrypts/environment-files
#####################################################################

MAIN() {
	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_USER_INPUT '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)' \
		;
}
