diff --git a/src/main/bash/gvm-init.sh b/src/main/bash/gvm-init.sh index afc12e81..2f84d7f2 100644 --- a/src/main/bash/gvm-init.sh +++ b/src/main/bash/gvm-init.sh @@ -19,6 +19,14 @@ export GVM_VERSION="@GVM_VERSION@" export GVM_PLATFORM=$(uname) +if [ -z "${GVM_SERVICE}" ]; then + export GVM_SERVICE="@GVM_SERVICE@" +fi + +if [ -z "${GVM_DIR}" ]; then + export GVM_DIR="$HOME/.gvm" +fi + function gvm_source_modules { # Source gvm module scripts. for f in $(find "${GVM_DIR}/src" -type f -name 'gvm-*'); do @@ -44,6 +52,11 @@ function gvm_set_candidates { IFS="$OLD_IFS" } +# force zsh to behave well +if [[ -n $(echo "$SHELL" | grep 'zsh') ]]; then + setopt shwordsplit +fi + # OS specific support (must be 'true' or 'false'). cygwin=false; darwin=false; @@ -83,6 +96,14 @@ EOF OFFLINE_MESSAGE="This command is not available in offline mode." +# fabricate list of candidates +if [[ -f "${GVM_DIR}/var/candidates" ]]; then + GVM_CANDIDATES_CSV=$(cat "${GVM_DIR}/var/candidates") +else + GVM_CANDIDATES_CSV=$(curl -s "${GVM_SERVICE}/candidates") + echo "$GVM_CANDIDATES_CSV" > "${GVM_DIR}/var/candidates" +fi + # initialise once only if [[ "${GVM_INIT}" == "true" ]]; then gvm_set_candidates @@ -119,33 +140,10 @@ if ${cygwin} ; then [ -n "${CP}" ] && CP=$(cygpath --path --unix "${CP}") fi -if [ -z "${GVM_SERVICE}" ]; then - export GVM_SERVICE="@GVM_SERVICE@" -fi - -if [ -z "${GVM_DIR}" ]; then - export GVM_DIR="$HOME/.gvm" -fi - -# fabricate list of candidates -if [[ -f "${GVM_DIR}/var/candidates" ]]; then - GVM_CANDIDATES_CSV=$(cat "${GVM_DIR}/var/candidates") -else - GVM_CANDIDATES_CSV=$(curl -s "${GVM_SERVICE}/candidates") - echo "$GVM_CANDIDATES_CSV" > "${GVM_DIR}/var/candidates" -fi - -export GVM_CANDIDATES_CSV - -# convert csv to array -if [[ -n $(echo "$SHELL" | grep 'zsh') ]]; then - setopt shwordsplit -fi +# Build _HOME environment variables and prefix them all to PATH gvm_set_candidates -# Build _HOME environment variables and prefix them all to PATH - # bash/zsh hack: Starts at 0 for bash, ends at the candidate array size for zsh for (( i=0; i <= ${#GVM_CANDIDATES}; i++ )); do # Eliminate empty entries due to incompatibility