#!/bin/sh # # Create a new sh-ves environment. With --override, the variables listed # in SHVES_OVERRIDE_VARS (PATH, LDPATH, etc. by default) are initialized # to empty strings in the new environment, so activating it truncates them. # _shves_create_env() { file="$SHVES_ENV_DIR/$1" printf "name: %s\n" "$1" > "$file" if [ "$2" -eq 1 ]; then for var in $SHVES_OVERRIDE_VARS; do printf "export_var:%s=\n" "$var" >> "$file" done fi } ves_create() { override=0 case $1 in --override) override=1 shift ;; esac if [ "$#" -lt 1 ]; then printf "ERROR: No environment name specified.\n" >&2 return 1 fi env_name="$1" if ! _shves_check_env_name "$env_name"; then return 1 fi if _shves_check_env_exists "$env_name" 1; then printf "ERROR: Environment [%s] already exists.\n" "$env_name" >&2 return 1 fi _shves_create_env "$env_name" "$override" printf "Environment [%s] created successfully\n" "$env_name" printf "To activate, execute\n\$ ves activate %s\n" "$env_name" }