diff --git a/cli/install.sh b/cli/install.sh index b38f190..c42e56f 100755 --- a/cli/install.sh +++ b/cli/install.sh @@ -5,6 +5,7 @@ ## Variables ## DIR="$(cd "$(dirname -- "${BASH_SOURCE[0]}")" &>/dev/null && pwd)" +PROJ="$(cd "$DIR"/.. &>/dev/null && pwd)" PROG="$(basename -- "${BASH_SOURCE[0]}")" LOCAL=~/bin GLOBAL=/usr/local/bin @@ -46,6 +47,24 @@ function usage { exit $1 } +## Validations ## + +count=0 +while [[ ! -d "$DIR/node_modules" ]]; do + if (( count > 0 )); then + echo "Failed to download libraries, please intervene." + exit 3 + fi + if [[ -z "`which npm`" ]]; then + echo "Libraries are missing, please run 'npm install' first." + exit 2 + else + echo "Downloading libraries with 'npm install'." + cd $DIR && npm install + fi + count=$(( count++ )) +done + ## Parameters ## while getopts ":gslarh" arg; do @@ -75,19 +94,19 @@ fi cmd="" dir="$LOCAL" -src="$DIR" +src="$PROJ" if [[ "$global" == "Y" ]]; then dir="$GLOBAL" cmd="sudo" echo "Requesting sudo privileges... " sudo echo "Success!" mkdir -pv /usr/local/src - sudo cp -Rv "$DIR" $GLOBAL_SRC/ - src="$GLOBAL_SRC/`basename "$DIR"`" + sudo cp -Rv "$PROJ" "$GLOBAL_SRC"/ + src="$GLOBAL_SRC/`basename "$PROJ"`" fi if [[ -z "$remove" ]]; then - cmd="$cmd ln -svf $src/$name_local" + cmd="$cmd ln -svf $src/cli/$name_local" else cmd="$cmd rm -v" fi