Compare commits
No commits in common. "8be0a29b7d6ded79049ecae2cef7f8167f7ca656" and "a443dd04d30072dec2ee9b5fa161842d22ad7307" have entirely different histories.
8be0a29b7d
...
a443dd04d3
64
README.md
64
README.md
|
@ -35,75 +35,29 @@ wget -nv https://bit.ly/node-installer -O - ./node-installer.sh; bash ./node-ins
|
||||||
|
|
||||||
### Choosing a specific version
|
### Choosing a specific version
|
||||||
|
|
||||||
**Latest**
|
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
export NODEJS_VER=""
|
echo "Current node.js version is $(curl -fsSL https://nodejs.org/dist/index.tab | head -2 | tail -1 | cut -f 1)"
|
||||||
```
|
|
||||||
|
|
||||||
**Exact**
|
|
||||||
|
|
||||||
```bash
|
|
||||||
export NODEJS_VER="v10.2.1"
|
|
||||||
```
|
|
||||||
|
|
||||||
**Latest of vX.Y.Z**
|
|
||||||
|
|
||||||
```bash
|
|
||||||
export NODEJS_VER="v8.1"
|
|
||||||
```
|
|
||||||
|
|
||||||
**Latest of vX.YY.Z**
|
|
||||||
|
|
||||||
```bash
|
|
||||||
# latest of v8.11.x
|
|
||||||
export NODEJS_VER="v8.11"
|
|
||||||
```
|
|
||||||
|
|
||||||
**Latest of vX.Y**
|
|
||||||
|
|
||||||
```bash
|
|
||||||
export NODEJS_VER="v10"
|
|
||||||
```
|
|
||||||
|
|
||||||
Fun FYI, here's how the latest version is determined:
|
|
||||||
|
|
||||||
```bash
|
|
||||||
NODEJS_VER=$(curl -fsSL https://nodejs.org/dist/index.tab | tail -n +2 | cut -f 1 | head -1 )
|
|
||||||
echo "The current node.js version is $NODEJS_VER"
|
|
||||||
```
|
```
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
BASE_VER="v10\\."
|
# To install a specific version rather than defaulting to latest
|
||||||
NODEJS_VER=$(curl -fsSL https://nodejs.org/dist/index.tab | tail -n +2 | cut -f 1 | grep $BASE_VER | head -1 )
|
# latest version at time of writing are v8.11.1 and v10.1.0
|
||||||
echo "Latest node.js $BASE_VER is $NODEJS_VER"
|
export NODEJS_VER="v10.1.0"
|
||||||
```
|
```
|
||||||
|
|
||||||
### Choosing an install location
|
### Choosing an install location
|
||||||
|
|
||||||
Just set BOTH `NODE_PATH` and `NPM_CONFIG_PREFIX`.
|
Just set BOTH `NODE_PATH` and `NPM_CONFIG_PREFIX`.
|
||||||
The install path will be the preceding `lib/node_modules`
|
The install path will be the preceding `lib/node_modules`
|
||||||
(which you usually want to be the same as `NPM_CONFIG_PREFIX` anyway).
|
(which you usually want to be the same as `NPM_CONFIG_PREFIIX` anyway).
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
export NPM_CONFIG_PREFIX=/tmp/usr/local
|
export NPM_CONFIG_PREFIX=/tmp/user/local
|
||||||
export NODE_PATH=/tmp/usr/local/lib/node_modules
|
export NODE_PATH=/tmp/user/local/lib/node_modules
|
||||||
```
|
|
||||||
|
|
||||||
A more realistic example for a self-contained node app:
|
|
||||||
```bash
|
|
||||||
export NPM_CONFIG_PREFIX=/opt/my-app
|
|
||||||
export NODE_PATH=/opt/my-app/lib/node_modules
|
|
||||||
```
|
|
||||||
|
|
||||||
|
|
||||||
```bash
|
|
||||||
curl -fsSL https://bit.ly/node-installer -o ./node-installer.sh; bash ./node-installer.sh --dev-deps
|
curl -fsSL https://bit.ly/node-installer -o ./node-installer.sh; bash ./node-installer.sh --dev-deps
|
||||||
```
|
|
||||||
|
|
||||||
If you want to add the install location to your `PATH`:
|
# If you want to add the install location to your PATH
|
||||||
|
|
||||||
```bash
|
|
||||||
PATH=$PATH:/tmp/user/local/bin
|
PATH=$PATH:/tmp/user/local/bin
|
||||||
```
|
```
|
||||||
|
|
||||||
|
@ -147,7 +101,7 @@ wget -nv https://bit.ly/node-installer -O /tmp/node-installer.sh; bash /tmp/node
|
||||||
|
|
||||||
### Other things you should know
|
### Other things you should know
|
||||||
|
|
||||||
This is what gets installed with the dev dependencies:
|
This is what gets installed:
|
||||||
|
|
||||||
* rsync
|
* rsync
|
||||||
* curl
|
* curl
|
||||||
|
|
64
install.sh
64
install.sh
|
@ -14,7 +14,7 @@
|
||||||
|
|
||||||
# Not every platform has or needs sudo, gotta save them O(1)s...
|
# Not every platform has or needs sudo, gotta save them O(1)s...
|
||||||
sudo_cmd=""
|
sudo_cmd=""
|
||||||
((EUID)) && [[ -z "${ANDROID_ROOT:-}" ]] && sudo_cmd="sudo"
|
((EUID)) && [[ -z "$ANDROID_ROOT" ]] && sudo_cmd="sudo"
|
||||||
|
|
||||||
deps_flag="$1"
|
deps_flag="$1"
|
||||||
set -e
|
set -e
|
||||||
|
@ -33,8 +33,6 @@ NO_FAIL2BAN="nope"
|
||||||
OS="unsupported"
|
OS="unsupported"
|
||||||
ARCH=""
|
ARCH=""
|
||||||
SETUP_FILE=""
|
SETUP_FILE=""
|
||||||
my_tmp="$(mktemp -d -t node-installer.XXXXXXXX)"
|
|
||||||
export my_tmp
|
|
||||||
|
|
||||||
clear
|
clear
|
||||||
|
|
||||||
|
@ -112,8 +110,6 @@ elif [ "$(uname | grep -i 'Linux')" ]; then
|
||||||
OS='ubuntu'
|
OS='ubuntu'
|
||||||
elif [ "$(cat /etc/issue | grep -i 'elementary OS')" ]; then
|
elif [ "$(cat /etc/issue | grep -i 'elementary OS')" ]; then
|
||||||
OS='ubuntu'
|
OS='ubuntu'
|
||||||
elif [ "$(cat /etc/issue | grep -i 'Arch ')" ]; then
|
|
||||||
OS='ubuntu'
|
|
||||||
elif [ "$(cat /etc/issue | grep -i 'Debian')" ]; then
|
elif [ "$(cat /etc/issue | grep -i 'Debian')" ]; then
|
||||||
OS='ubuntu'
|
OS='ubuntu'
|
||||||
elif [ "$(cat /etc/issue | grep -i 'Trisquel')" ]; then
|
elif [ "$(cat /etc/issue | grep -i 'Trisquel')" ]; then
|
||||||
|
@ -123,15 +119,13 @@ elif [ "$(uname | grep -i 'Linux')" ]; then
|
||||||
elif [ "$(cat /etc/issue | grep -i 'Raspbian')" ]; then
|
elif [ "$(cat /etc/issue | grep -i 'Raspbian')" ]; then
|
||||||
OS='raspbian'
|
OS='raspbian'
|
||||||
elif [ "$(cat /etc/issue | grep -i 'Fedora')" ]; then
|
elif [ "$(cat /etc/issue | grep -i 'Fedora')" ]; then
|
||||||
OS='ubuntu'
|
OS='fedora'
|
||||||
elif [ "$(cat /etc/issue | grep -i 'Marvell')" ]; then
|
elif [ "$(cat /etc/issue | grep -i 'Marvell')" ]; then
|
||||||
OS='marvell'
|
OS='marvell'
|
||||||
else
|
|
||||||
OS='ubuntu'
|
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
echo "unsupported unknown os (non-mac, non-linux)"
|
echo "unsupported unknown os (non-mac, non-linux)"
|
||||||
exit 500
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
case "${OS}" in
|
case "${OS}" in
|
||||||
|
@ -185,13 +179,13 @@ fi
|
||||||
|
|
||||||
INSTALL_DEPS_FILE="setup-deps-${SETUP_FILE}.bash"
|
INSTALL_DEPS_FILE="setup-deps-${SETUP_FILE}.bash"
|
||||||
INSTALL_FILE="setup-node-${SETUP_FILE}.bash"
|
INSTALL_FILE="setup-node-${SETUP_FILE}.bash"
|
||||||
if [ ! -e "$my_tmp/${INSTALL_FILE}" ]; then
|
if [ ! -e "/tmp/${INSTALL_FILE}" ]; then
|
||||||
if [ -n "$(type -p curl)" ]; then
|
if [ -n "$(type -p curl)" ]; then
|
||||||
curl --silent -L "${BASE_URL}/${INSTALL_FILE}" \
|
curl --silent -L "${BASE_URL}/${INSTALL_FILE}" \
|
||||||
-o "$my_tmp/${INSTALL_FILE}" || echo 'error downloading os setup script'
|
-o "/tmp/${INSTALL_FILE}" || echo 'error downloading os setup script'
|
||||||
elif [ -n "$(type -p wget)" ]; then
|
elif [ -n "$(type -p wget)" ]; then
|
||||||
wget --quiet "${BASE_URL}/${INSTALL_FILE}" \
|
wget --quiet "${BASE_URL}/${INSTALL_FILE}" \
|
||||||
-O "$my_tmp/${INSTALL_FILE}" || echo 'error downloading os setup script'
|
-O "/tmp/${INSTALL_FILE}" || echo 'error downloading os setup script'
|
||||||
else
|
else
|
||||||
echo "Found neither 'curl' nor 'wget'. Can't Continue."
|
echo "Found neither 'curl' nor 'wget'. Can't Continue."
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -199,13 +193,13 @@ if [ ! -e "$my_tmp/${INSTALL_FILE}" ]; then
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "--dev-deps" == "$deps_flag" ]; then
|
if [ "--dev-deps" == "$deps_flag" ]; then
|
||||||
if [ ! -e "$my_tmp/${INSTALL_DEPS_FILE}" ]; then
|
if [ ! -e "/tmp/${INSTALL_DEPS_FILE}" ]; then
|
||||||
if [ -n "$(type -p curl)" ]; then
|
if [ -n "$(type -p curl)" ]; then
|
||||||
curl --silent -L "${BASE_URL}/${INSTALL_DEPS_FILE}" \
|
curl --silent -L "${BASE_URL}/${INSTALL_DEPS_FILE}" \
|
||||||
-o "$my_tmp/${INSTALL_DEPS_FILE}" || echo 'error downloading os deps script: '"${BASE_URL}/${INSTALL_DEPS_FILE}"
|
-o "/tmp/${INSTALL_DEPS_FILE}" || echo 'error downloading os deps script: '"${BASE_URL}/${INSTALL_DEPS_FILE}"
|
||||||
elif [ -n "$(type -p wget)" ]; then
|
elif [ -n "$(type -p wget)" ]; then
|
||||||
wget --quiet "${BASE_URL}/${INSTALL_DEPS_FILE}" \
|
wget --quiet "${BASE_URL}/${INSTALL_DEPS_FILE}" \
|
||||||
-O "$my_tmp/${INSTALL_DEPS_FILE}" || echo 'error downloading os deps script: '"${BASE_URL}/${INSTALL_DEPS_FILE}"
|
-O "/tmp/${INSTALL_DEPS_FILE}" || echo 'error downloading os deps script: '"${BASE_URL}/${INSTALL_DEPS_FILE}"
|
||||||
else
|
else
|
||||||
echo "Found neither 'curl' nor 'wget'. Can't Continue."
|
echo "Found neither 'curl' nor 'wget'. Can't Continue."
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -213,14 +207,14 @@ if [ "--dev-deps" == "$deps_flag" ]; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ ! -e "$my_tmp/${INSTALL_FILE}" ]
|
if [ ! -e "/tmp/${INSTALL_FILE}" ]
|
||||||
then
|
then
|
||||||
echo "Error Downloading Install File"
|
echo "Error Downloading Install File"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ "--dev-deps" == "$deps_flag" ]; then
|
if [ "--dev-deps" == "$deps_flag" ]; then
|
||||||
if [ ! -e "$my_tmp/${INSTALL_DEPS_FILE}" ]
|
if [ ! -e "/tmp/${INSTALL_DEPS_FILE}" ]
|
||||||
then
|
then
|
||||||
echo "Error Downloading Deps File"
|
echo "Error Downloading Deps File"
|
||||||
exit 1
|
exit 1
|
||||||
|
@ -233,10 +227,10 @@ fi
|
||||||
|
|
||||||
if [ -z "${NODEJS_VER:-}" ]; then
|
if [ -z "${NODEJS_VER:-}" ]; then
|
||||||
# For backwards compat
|
# For backwards compat
|
||||||
if [ -f "$my_tmp/NODEJS_VER" ]; then
|
if [ -f "/tmp/NODEJS_VER" ]; then
|
||||||
NODEJS_VER=$(cat $my_tmp/NODEJS_VER | grep v)
|
NODEJS_VER=$(cat /tmp/NODEJS_VER | grep v)
|
||||||
elif [ -f "/tmp/IOJS_VER" ]; then
|
elif [ -f "/tmp/IOJS_VER" ]; then
|
||||||
NODEJS_VER=$(cat $my_tmp/IOJS_VER | grep v)
|
NODEJS_VER=$(cat /tmp/IOJS_VER | grep v)
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -251,23 +245,12 @@ if [ -n "${NODEJS_VER:-}" ]; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
NODEJS_VER="${NODEJS_VER:-v}" # Search for 'v' at the least
|
if [ -z "${NODEJS_VER:-}" ]; then
|
||||||
# sort -rV # will sort by version number, but it appears these are already sorted
|
|
||||||
# tail -n +2 # starts at line two (1-indexed) and all after (omits the csv header with 'version' and such)
|
|
||||||
# cut -f 1 # gets only the first column
|
|
||||||
# head -n 1 # gets only the most recent version
|
|
||||||
my_char="."
|
|
||||||
my_count=$(awk -F"${my_char}" '{print NF-1}' <<< "${NODEJS_VER}")
|
|
||||||
# get the latest version if partial
|
|
||||||
if [ $my_count -ne 2 ]; then
|
|
||||||
if [ "$NODEJS_VER" != "v" ]; then
|
|
||||||
NODEJS_VER="$NODEJS_VER\\."
|
|
||||||
fi
|
|
||||||
if [ -n "$(type -p curl)" ]; then
|
if [ -n "$(type -p curl)" ]; then
|
||||||
NODEJS_VER=$(curl -fsL "$NODEJS_BASE_URL/dist/index.tab" | tail -n +2 | cut -f 1 | grep "^$NODEJS_VER" | head -n 1) \
|
NODEJS_VER=$(curl -fsL "$NODEJS_BASE_URL/dist/index.tab" | head -n 2 | tail -1 | cut -f 1) \
|
||||||
|| echo 'error automatically determining current node.js version'
|
|| echo 'error automatically determining current node.js version'
|
||||||
elif [ -n "$(type -p wget)" ]; then
|
elif [ -n "$(type -p wget)" ]; then
|
||||||
NODEJS_VER=$(wget --quiet "$NODEJS_BASE_URL/dist/index.tab" -O - | tail -n +2 | cut -f 1 | grep "^$NODEJS_VER" | head -n 1) \
|
NODEJS_VER=$(wget --quiet "$NODEJS_BASE_URL/dist/index.tab" -O - | head -n 2 | tail -1 | cut -f 1) \
|
||||||
|| echo 'error automatically determining current node.js version'
|
|| echo 'error automatically determining current node.js version'
|
||||||
else
|
else
|
||||||
echo "Found neither 'curl' nor 'wget'. Can't Continue."
|
echo "Found neither 'curl' nor 'wget'. Can't Continue."
|
||||||
|
@ -295,27 +278,24 @@ if [ -e "$node_install_path/bin/node" ]; then
|
||||||
# node of some version is already installed
|
# node of some version is already installed
|
||||||
if [ "${NODEJS_VER}" == "$($node_install_path/bin/node -v 2>/dev/null)" ]; then
|
if [ "${NODEJS_VER}" == "$($node_install_path/bin/node -v 2>/dev/null)" ]; then
|
||||||
echo node ${NODEJS_VER} is already installed
|
echo node ${NODEJS_VER} is already installed
|
||||||
exit 0
|
|
||||||
else
|
else
|
||||||
echo ""
|
echo ""
|
||||||
echo "HEY, LISTEN:"
|
echo "HEY, LISTEN:"
|
||||||
echo ""
|
echo ""
|
||||||
echo "node.js is already installed as node $($node_install_path/bin/node -v | grep v)"
|
echo "node.js is already installed as node $($node_install_path/bin/node -v | grep v)"
|
||||||
echo ""
|
echo ""
|
||||||
echo "to reinstall as ${NODEJS_VER} please first run: rm $node_install_path/bin/node"
|
echo "to reinstall please first run: rm $node_install_path/bin/node"
|
||||||
echo ""
|
echo ""
|
||||||
exit 1
|
|
||||||
fi
|
fi
|
||||||
|
|
||||||
NODEJS_VER=""
|
NODEJS_VER=""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -n "${NODEJS_VER}" ]; then
|
if [ -n "${NODEJS_VER}" ]; then
|
||||||
bash "$my_tmp/${INSTALL_FILE}" "${NODEJS_VER}"
|
bash "/tmp/${INSTALL_FILE}" "${NODEJS_VER}"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
mkdir -p $node_install_path/lib/node_modules || $sudo_cmd mkdir -p $node_install_path/lib/node_modules
|
$sudo_cmd chown -R $(whoami) $node_install_path/lib/node_modules
|
||||||
chown -R $(whoami) $node_install_path/lib/node_modules || $sudo_cmd chown -R $(whoami) $node_install_path/lib/node_modules
|
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
|
|
||||||
|
@ -359,7 +339,7 @@ if [ "--dev-deps" == "$deps_flag" ]; then
|
||||||
# fi
|
# fi
|
||||||
#fi
|
#fi
|
||||||
|
|
||||||
bash "$my_tmp/${INSTALL_DEPS_FILE}" "${NO_FAIL2BAN}"
|
bash "/tmp/${INSTALL_DEPS_FILE}" "${NO_FAIL2BAN}"
|
||||||
|
|
||||||
# yarn
|
# yarn
|
||||||
#if [ -z "$(type -p yarn)" ]; then
|
#if [ -z "$(type -p yarn)" ]; then
|
||||||
|
@ -376,5 +356,3 @@ if [ "--dev-deps" == "$deps_flag" ]; then
|
||||||
|
|
||||||
echo ""
|
echo ""
|
||||||
fi
|
fi
|
||||||
|
|
||||||
rm -rf "$my_tmp"
|
|
|
@ -4,9 +4,6 @@ set -e
|
||||||
set -u
|
set -u
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
if [ -z "${my_tmp-}" ]; then
|
|
||||||
my_tmp=$(mkdir -p)
|
|
||||||
fi
|
|
||||||
if [ -z "${PREFIX-}" ]; then
|
if [ -z "${PREFIX-}" ]; then
|
||||||
PREFIX=""
|
PREFIX=""
|
||||||
fi
|
fi
|
||||||
|
@ -36,25 +33,23 @@ fi
|
||||||
#NODEJS_PKG="/tmp/${NODEJS_NAME}-${NODEJS_VER}.pkg"
|
#NODEJS_PKG="/tmp/${NODEJS_NAME}-${NODEJS_VER}.pkg"
|
||||||
|
|
||||||
NODEJS_REMOTE="$NODEJS_BASE_URL/dist/${NODEJS_VER}/${NODEJS_NAME}-${NODEJS_VER}-darwin-x64.tar.gz"
|
NODEJS_REMOTE="$NODEJS_BASE_URL/dist/${NODEJS_VER}/${NODEJS_NAME}-${NODEJS_VER}-darwin-x64.tar.gz"
|
||||||
NODEJS_PKG="$my_tmp/${NODEJS_NAME}-${NODEJS_VER}-darwin-x64.tar.gz"
|
NODEJS_PKG="/tmp/${NODEJS_NAME}-${NODEJS_VER}-darwin-x64.tar.gz"
|
||||||
NODEJS_UNTAR="$my_tmp/${NODEJS_NAME}-${NODEJS_VER}-darwin-x64"
|
NODEJS_UNTAR="/tmp/${NODEJS_NAME}-${NODEJS_VER}-darwin-x64"
|
||||||
|
|
||||||
if [ -n "${NODEJS_VER}" ]; then
|
if [ -n "${NODEJS_VER}" ]; then
|
||||||
echo "installing ${NODEJS_NAME} as ${NODEJS_NAME} ${NODEJS_VER}..."
|
echo "installing ${NODEJS_NAME} as ${NODEJS_NAME} ${NODEJS_VER}..."
|
||||||
curl -fsSL "${NODEJS_REMOTE}" -o "${NODEJS_PKG}"
|
curl -fsSL "${NODEJS_REMOTE}" -o "${NODEJS_PKG}"
|
||||||
|
|
||||||
# When using .pkg
|
# When using .pkg
|
||||||
#sudo /usr/sbin/installer -pkg "${NODEJS_PKG}" -target /
|
#sudo /usr/sbin/installer -pkg "${NODEJS_PKG}" -target /
|
||||||
|
|
||||||
# When using .tar.gz
|
# When using .tar.gz
|
||||||
mkdir -p ${NODEJS_UNTAR}/
|
mkdir -p ${NODEJS_UNTAR}/
|
||||||
tar xf "${NODEJS_PKG}" -C "${NODEJS_UNTAR}/" --strip-components=1
|
tar xf "${NODEJS_PKG}" -C "${NODEJS_UNTAR}/" --strip-components=1
|
||||||
rm -f ${NODEJS_UNTAR}/{LICENSE,CHANGELOG.md,README.md}
|
rm -f ${NODEJS_UNTAR}/{LICENSE,CHANGELOG.md,README.md}
|
||||||
|
sudo rsync -a "${NODEJS_UNTAR}/" "$node_install_path/"
|
||||||
|
|
||||||
mkdir -p "$node_install_path/" || sudo mkdir -p "$node_install_path/"
|
|
||||||
rsync -a "${NODEJS_UNTAR}/" "$node_install_path/" || sudo rsync -a "${NODEJS_UNTAR}/" "$node_install_path/"
|
sudo chown -R $(whoami) "$node_install_path/lib/node_modules/"
|
||||||
|
sudo chown $(whoami) "$node_install_path/bin/"
|
||||||
|
|
||||||
chown -R $(whoami) "$node_install_path/lib/node_modules/" || sudo chown -R $(whoami) "$node_install_path/lib/node_modules/"
|
|
||||||
chown $(whoami) "$node_install_path/bin/" || sudo chown $(whoami) "$node_install_path/bin/"
|
|
||||||
fi
|
fi
|
||||||
|
|
|
@ -2,15 +2,12 @@
|
||||||
|
|
||||||
# Not every platform has or needs sudo, gotta save them O(1)s...
|
# Not every platform has or needs sudo, gotta save them O(1)s...
|
||||||
sudo_cmd=""
|
sudo_cmd=""
|
||||||
((EUID)) && [[ -z "${ANDROID_ROOT:-}" ]] && sudo_cmd="sudo"
|
((EUID)) && [[ -z "$ANDROID_ROOT" ]] && sudo_cmd="sudo"
|
||||||
|
|
||||||
set -e
|
set -e
|
||||||
set -u
|
set -u
|
||||||
set -o pipefail
|
set -o pipefail
|
||||||
|
|
||||||
if [ -z "${my_tmp-}" ]; then
|
|
||||||
my_tmp="$(mktemp -d -t node-installer.XXXXXXXX)"
|
|
||||||
fi
|
|
||||||
if [ -z "${PREFIX-}" ]; then
|
if [ -z "${PREFIX-}" ]; then
|
||||||
PREFIX=""
|
PREFIX=""
|
||||||
fi
|
fi
|
||||||
|
@ -49,19 +46,19 @@ else
|
||||||
fi
|
fi
|
||||||
|
|
||||||
NODEJS_REMOTE="${NODEJS_BASE_URL}/dist/${NODEJS_VER}/${NODEJS_NAME}-${NODEJS_VER}-linux-${ARCH}.tar.gz"
|
NODEJS_REMOTE="${NODEJS_BASE_URL}/dist/${NODEJS_VER}/${NODEJS_NAME}-${NODEJS_VER}-linux-${ARCH}.tar.gz"
|
||||||
NODEJS_LOCAL="$my_tmp/${NODEJS_NAME}-${NODEJS_VER}-linux-${ARCH}.tar.gz"
|
NODEJS_LOCAL="/tmp/${NODEJS_NAME}-${NODEJS_VER}-linux-${ARCH}.tar.gz"
|
||||||
NODEJS_UNTAR="$my_tmp/${NODEJS_NAME}-${NODEJS_VER}-linux-${ARCH}"
|
NODEJS_UNTAR="/tmp/${NODEJS_NAME}-${NODEJS_VER}-linux-${ARCH}"
|
||||||
|
|
||||||
if [ -n "${NODEJS_VER}" ]; then
|
if [ -n "${NODEJS_VER}" ]; then
|
||||||
echo "installing ${NODEJS_NAME} as ${NODEJS_NAME} ${NODEJS_VER}..."
|
echo "installing ${NODEJS_NAME} as ${NODEJS_NAME} ${NODEJS_VER}..."
|
||||||
|
|
||||||
if [ -n "$(command -v curl 2>/dev/null | grep curl)" ]; then
|
if [ -n "$(which curl 2>/dev/null)" ]; then
|
||||||
curl -fsSL ${NODEJS_REMOTE} -o ${NODEJS_LOCAL} || echo 'error downloading ${NODEJS_NAME}'
|
curl -fsSL ${NODEJS_REMOTE} -o ${NODEJS_LOCAL} || echo 'error downloading ${NODEJS_NAME}'
|
||||||
elif [ -n "$(command -v wget 2>/dev/null | grep wget)" ]; then
|
elif [ -n "$(which wget 2>/dev/null)" ]; then
|
||||||
wget --quiet ${NODEJS_REMOTE} -O ${NODEJS_LOCAL} || echo 'error downloading ${NODEJS_NAME}'
|
wget --quiet ${NODEJS_REMOTE} -O ${NODEJS_LOCAL} || echo 'error downloading ${NODEJS_NAME}'
|
||||||
else
|
else
|
||||||
echo "'wget' and 'curl' are missing. Please run the following command and try again"
|
echo "'wget' and 'curl' are missing. Please run the following command and try again"
|
||||||
echo " sudo apt-get install --yes curl wget"
|
echo "\tsudo apt-get install --yes curl wget"
|
||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
@ -71,17 +68,10 @@ if [ -n "${NODEJS_VER}" ]; then
|
||||||
mv ${NODEJS_UNTAR}/${NODEJS_NAME}-${NODEJS_VER}-linux-${ARCH}/* ${NODEJS_UNTAR}/
|
mv ${NODEJS_UNTAR}/${NODEJS_NAME}-${NODEJS_VER}-linux-${ARCH}/* ${NODEJS_UNTAR}/
|
||||||
rm -rf ${NODEJS_UNTAR}/${NODEJS_NAME}-${NODEJS_VER}-linux-${ARCH} # clean up the temporary unzip folder
|
rm -rf ${NODEJS_UNTAR}/${NODEJS_NAME}-${NODEJS_VER}-linux-${ARCH} # clean up the temporary unzip folder
|
||||||
rm ${NODEJS_UNTAR}/{LICENSE,CHANGELOG.md,README.md}
|
rm ${NODEJS_UNTAR}/{LICENSE,CHANGELOG.md,README.md}
|
||||||
if [ -n "$(command -v rsync 2>/dev/null | grep rsync)" ]; then
|
echo $sudo_cmd rsync -a "${NODEJS_UNTAR}/" "$node_install_path/"
|
||||||
echo $sudo_cmd rsync -Krl "${NODEJS_UNTAR}/" "$node_install_path/"
|
$sudo_cmd rsync -a "${NODEJS_UNTAR}/" "$node_install_path/"
|
||||||
rsync -Krl "${NODEJS_UNTAR}/" "$node_install_path/" || $sudo_cmd rsync -Krl "${NODEJS_UNTAR}/" "$node_install_path/"
|
|
||||||
else
|
|
||||||
# due to symlink issues on Arch Linux, don't copy the share directory
|
|
||||||
rm -rf ${NODEJS_UNTAR}/share
|
|
||||||
echo $sudo_cmd cp -Hr "${NODEJS_UNTAR}/*" "$node_install_path/"
|
|
||||||
cp -Hr "${NODEJS_UNTAR}"/* "$node_install_path/" || $sudo_cmd cp -Hr "${NODEJS_UNTAR}"/* "$node_install_path/"
|
|
||||||
fi
|
|
||||||
rm -rf "${NODEJS_UNTAR}"
|
rm -rf "${NODEJS_UNTAR}"
|
||||||
|
|
||||||
chown -R $(whoami) "$node_install_path/lib/node_modules/" || $sudo_cmd chown -R $(whoami) "$node_install_path/lib/node_modules/"
|
$sudo_cmd chown -R $(whoami) "$node_install_path/lib/node_modules/"
|
||||||
chown $(whoami) ""$node_install_path"/bin/" || $sudo_cmd chown $(whoami) ""$node_install_path"/bin/"
|
$sudo_cmd chown $(whoami) ""$node_install_path"/bin/"
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Reference in New Issue