aboutsummaryrefslogtreecommitdiffstats
path: root/ves-create.sh
diff options
context:
space:
mode:
authorDouglas Rumbaugh <doug@douglasrumbaugh.com>2022-09-12 22:40:03 -0400
committerDouglas Rumbaugh <doug@douglasrumbaugh.com>2022-09-12 22:40:03 -0400
commit04b385284a8559bde3df51bab950784a0fd28cfd (patch)
treec0218597c8239f05de2ab94f3a25b9ca86a57f36 /ves-create.sh
parent7ae2929b5f0660cd07d2127c66d508ac62ad1aa7 (diff)
downloadsh-ves-04b385284a8559bde3df51bab950784a0fd28cfd.tar.gz
Updates/adjustments
Diffstat (limited to 'ves-create.sh')
-rw-r--r--ves-create.sh74
1 files changed, 25 insertions, 49 deletions
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"
+}