diff --git a/b9/b9 b/b9/b9 index a9dd69f2..635b5d14 100755 --- a/b9/b9 +++ b/b9/b9 @@ -7,23 +7,22 @@ if [ -h $SCRIPT_NAME ]; then SCRIPT_NAME=$(readlink $SCRIPT_NAME); fi cd $(dirname $SCRIPT_NAME) -readonly UNAME=$(id -n -u) - -for TMPDIR in /var/lib/docker/tmp /tmp; do - TMPDIR=$TMPDIR/$UNAME - mkdir -p $TMPDIR && break -done - -TMP=$TMPDIR -TEMP=$TMPDIR - B9_DIR=$(pwd) C9_DIR=$B9_DIR/.. B9=$B9_DIR/b9 +source ./lib/_init.sh + +NODEJS=$(_b9_init_find_nodejs) + +TMPDIR=$(_b9_init_temp) +TMP=$TMPDIR +TEMP=$TMPDIR + DEBUG="" for MODULE in ./lib/*.sh; do + [ $MODULE == "./lib/_init.sh" ] && continue source $MODULE done diff --git a/b9/lib/_init.sh b/b9/lib/_init.sh new file mode 100644 index 00000000..bfda6245 --- /dev/null +++ b/b9/lib/_init.sh @@ -0,0 +1,36 @@ +_b9_init_temp() { + local TMPDIR + local UNAME=$(id -n -u) + + for TMPDIR in /var/lib/docker/tmp /tmp; do + TMPDIR=$TMPDIR/$UNAME + mkdir -p $TMPDIR &> /dev/null && break + TMPDIR="" + done + + if [ -z "$TMPDIR" ]; then + echo "Can't find temp dir" 1>&2 + exit 1 + fi + + rm $(mktemp --tmpdir=$TMPDIR) + + echo $TMPDIR +} + +_b9_init_find_nodejs() { + local NODEJS + + . ~/.nvm/nvm.sh &> /dev/null || : + for NODEJS in $(which node) $(which nodejs) /usr/local/bin/node /usr/bin/nodejs; do + [ -x $NODEJS ] && break + NODEJS="" + done + + if [ -z "$NODEJS" ]; then + echo "Can't find node executable" 1>&2 + exit 1 + fi + + echo $NODEJS +} \ No newline at end of file diff --git a/b9/lib/deploy.sh b/b9/lib/deploy.sh index ff4ad4b1..916a55db 100644 --- a/b9/lib/deploy.sh +++ b/b9/lib/deploy.sh @@ -222,7 +222,7 @@ _b9_deploy_release_event() { local VERSION=$3 local SERVER_PATTERN=$4 - echo $SERVICES | sed 's/,/\n/g' | xargs -I '{}' -n1 node $B9_DIR/lib/js/release_event.js '{}' $SETTINGS $VERSION $SERVER_PATTERN + echo $SERVICES | sed 's/,/\n/g' | xargs -I '{}' -n1 $NODEJS $B9_DIR/lib/js/release_event.js '{}' $SETTINGS $VERSION $SERVER_PATTERN } _b9_deploy_ssh() { diff --git a/b9/lib/package_service_docker.sh b/b9/lib/package_service_docker.sh index 79c79311..2ac33b0e 100644 --- a/b9/lib/package_service_docker.sh +++ b/b9/lib/package_service_docker.sh @@ -46,7 +46,7 @@ _do_package_docker_node_modules() { local NODE_MODULES local MODULE - node $B9_DIR/lib/js/filter_node_modules.js docker --targetFile=$WORKDIR/package.json --source=$SOURCE --settings=$SETTINGS + $NODEJS $B9_DIR/lib/js/filter_node_modules.js docker --targetFile=$WORKDIR/package.json --source=$SOURCE --settings=$SETTINGS NODE_MODULES=$(cat $WORKDIR/package.json | jq -r '.dependencies | keys | @sh') @@ -69,7 +69,7 @@ _do_package_docker_generate_settings() { local SOURCE=$2 local SETTINGS=$3 - node $B9_DIR/lib/js/generate_settings.js docker --targetFile=$WORKDIR/settings/$SETTINGS.js --source=$SOURCE --settings=$SETTINGS + $NODEJS $B9_DIR/lib/js/generate_settings.js docker --targetFile=$WORKDIR/settings/$SETTINGS.js --source=$SOURCE --settings=$SETTINGS } _do_package_docker_include_files() { @@ -83,7 +83,7 @@ _do_package_docker_include_files() { pushd $WORKDIR &> /dev/null - BUILD_CONFIG=$(node -e "console.log(JSON.stringify(require('$SOURCE/configs/docker').buildConfig({mode: '$SETTINGS'})))") + BUILD_CONFIG=$($NODEJS -e "console.log(JSON.stringify(require('$SOURCE/configs/docker').buildConfig({mode: '$SETTINGS'})))") FILE_INCLUDE=$(echo $BUILD_CONFIG | jq -r '.fileInclude | @sh') for PATTERN in $FILE_INCLUDE; do @@ -108,7 +108,7 @@ _do_package_docker_copy_plugins() { local PLUGINS local PLUGIN - PLUGINS=$(node $B9_DIR/lib/js/list_plugins.js docker --source=$SOURCE --settings=$SETTINGS) + PLUGINS=$($NODEJS $B9_DIR/lib/js/list_plugins.js docker --source=$SOURCE --settings=$SETTINGS) for PLUGIN in $PLUGINS; do cp -a $SOURCE/plugins/$PLUGIN $WORKDIR/plugins done