From 04b385284a8559bde3df51bab950784a0fd28cfd Mon Sep 17 00:00:00 2001 From: Douglas Rumbaugh Date: Mon, 12 Sep 2022 22:40:03 -0400 Subject: Updates/adjustments --- ves-create.sh | 74 ++++++++++++++++++++--------------------------------------- 1 file changed, 25 insertions(+), 49 deletions(-) (limited to 'ves-create.sh') diff --git a/ves-create.sh b/ves-create.sh index 36027f6..b4f6467 100644 --- a/ves-create.sh +++ b/ves-create.sh @@ -1,60 +1,36 @@ #!/bin/sh +_shves_create_env() { + file="$SHVES_ENV_DIR/$1" + printf "name: $1\n" > $file -OVERRIDE_VARS="PATH LDPATH" - -if [ -z $XDG_DATA_HOME ]; then - ENV_DIR="$HOME/.local/share/ves/envs" -else - ENV_DIR="$XDG_DATA_HOME/ves/envs" -fi - -check_name() { - if [ -f "$ENV_DIR/$1" ]; then - printf "ERROR: Environment [%s] already exists.\n" $1 > /dev/stderr - exit 1 - fi - - if ! echo $1 | grep "^[[:alpha:][:digit:]_-]*$" > /dev/null; then - printf "ERROR: Environment [%s] is invalid. Name must contain only letters, -, and _\n" $1 > /dev/stderr - exit 1 + if [ "$2" -eq "1" ]; then + for var in $SHVES_OVERRIDE_VARS; do + printf "export_var:%s=\n" "$var" >> $file + done fi } +ves_create() { + if [ "$#" -lt 1 ]; then + printf "ERROR: No environment name specified.\n" > /dev/stderr + return 1 + fi -create_env() { - FILE="$ENV_DIR/$1" - printf "name: $1\n" > $FILE + override=0 + env_name="$1" + test "$#" -eq "2" && override=1 - if [ "$OVERRIDE" -eq "1" ]; then - for VAR in $OVERRIDE_VARS; do - printf "export_var:%s=%s\n" $VAR '""' >> $FILE - done + if ! _shves_check_env_name "$env_name"; then + return 1; fi -} -OVERRIDE=0 -while :; do - case $1 in - --override) - OVERRIDE=1 - ;; - --) - shift - break - ;; - -?*) - printf "ERROR: Invalid option [%s]\n" $1 > /dev/stderr - exit 2 - ;; - *) - break - esac - shift -done -ENV_NAME="$1" + if _shves_check_env_exists "$env_name" 1; then + printf "ERROR: Environment [%s] already exists.\n" "$env_name" + return 1; + fi -check_name "$1" -create_env "$1" "$OVERRIDE" + _shves_create_env "$env_name" "$override" -printf "Environment [%s] created successfully\n" $ENV_NAME -printf "To activate, execute\nves activate %s\n" $ENV_NAME + printf "Environment [%s] created successfully\n" "$env_name" + printf "To activate, execute\n\$ ves activate %s\n" "$env_name" +} -- cgit v1.2.3