diff --git a/install.sh b/install.sh index 0e44e04..0481186 100644 --- a/install.sh +++ b/install.sh @@ -12,6 +12,10 @@ # curl -fsSL https://example.com/setup-min.bash | bash # wget -nv https://example.com/setup-min.bash -O - | bash +# Not every platform has or needs sudo, gotta save them O(1)s... +sudo_cmd="" +((EUID)) && [[ -z "$ANDROID_ROOT" ]] && sudo_cmd="sudo" + deps_flag="$1" set -e set -u @@ -95,7 +99,7 @@ elif [ "$(uname | grep -i 'Linux')" ]; then exit 1 fi - if [ -n "$(arch | grep 64)" ]; then + if [ -n "$(uname -a | grep 64)" ]; then ARCH="64" else ARCH="32" @@ -117,6 +121,8 @@ elif [ "$(uname | grep -i 'Linux')" ]; then OS='raspbian' elif [ "$(cat /etc/issue | grep -i 'Fedora')" ]; then OS='fedora' + elif [ "$(cat /etc/issue | grep -i 'Marvell')" ]; then + OS='marvell' fi else echo "unsupported unknown os (non-mac, non-linux)" @@ -134,6 +140,9 @@ case "${OS}" in raspbian) SETUP_FILE="ubuntu" ;; + marvell) + SETUP_FILE="ubuntu" + ;; yosemite) # mavericks SETUP_FILE="mavericks" @@ -236,10 +245,10 @@ fi if [ -z "$NODEJS_VER" ]; then if [ -n "$(type -p curl)" ]; then - NODEJS_VER=$(curl -fsL "$NODEJS_BASE_URL/dist/index.tab" | head -2 | tail -1 | cut -f 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' elif [ -n "$(type -p wget)" ]; then - NODEJS_VER=$(wget --quiet "$NODEJS_BASE_URL/dist/index.tab" -O - | head -2 | tail -1 | cut -f 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' else echo "Found neither 'curl' nor 'wget'. Can't Continue." @@ -284,7 +293,7 @@ if [ -n "${NODEJS_VER}" ]; then bash "/tmp/${INSTALL_FILE}" "${NODEJS_VER}" fi -sudo chown -R $(whoami) $node_install_path/lib/node_modules +$sudo_cmd chown -R $(whoami) $node_install_path/lib/node_modules echo "" diff --git a/setup-deps-ubuntu.bash b/setup-deps-ubuntu.bash index 1185389..16ef7c2 100644 --- a/setup-deps-ubuntu.bash +++ b/setup-deps-ubuntu.bash @@ -2,6 +2,10 @@ # curl -fsSL https://ldsconnect.org/setup-linux.bash | bash -c +# Not every platform has or needs sudo, gotta save them O(1)s... +sudo_cmd="" +((EUID)) && [[ -z "$ANDROID_ROOT" ]] && sudo_cmd="sudo" + NO_FAIL2BAN=${1} echo "" @@ -18,7 +22,7 @@ echo " * jshint" echo "" echo "updating apt-get..." -sudo bash -c "apt-get update -qq -y < /dev/null" > /dev/null +$sudo_cmd bash -c "apt-get update -qq -y < /dev/null" > /dev/null # fail2ban #if [ -z "$(which fail2ban-server | grep fail2ban)" ]; then @@ -32,5 +36,5 @@ sudo bash -c "apt-get update -qq -y < /dev/null" > /dev/null if [ -z "$(type -p pkg-config)" ] || [ -z "$(type -p git)" ] || [ -z "$(type -p wget)" ] || [ -z "$(type -p curl)" ] || [ -z "$(type -p gcc)" ] || [ -z "$(type -p rsync)" ] || [ -z "$(type -p python)" ] then echo "installing git, wget, curl, build-essential, rsync, pkg-config, python..." - sudo bash -c "apt-get install -qq -y git wget curl build-essential rsync pkg-config python < /dev/null" > /dev/null 2>/dev/null + $sudo_cmd bash -c "apt-get install -qq -y git wget curl build-essential rsync pkg-config python < /dev/null" > /dev/null 2>/dev/null fi diff --git a/setup-node-ubuntu.bash b/setup-node-ubuntu.bash index 7b80775..1eaa5b7 100644 --- a/setup-node-ubuntu.bash +++ b/setup-node-ubuntu.bash @@ -1,5 +1,9 @@ #!/bin/bash +# Not every platform has or needs sudo, gotta save them O(1)s... +sudo_cmd="" +((EUID)) && [[ -z "$ANDROID_ROOT" ]] && sudo_cmd="sudo" + set -e set -u set -o pipefail @@ -27,15 +31,15 @@ then NODEJS_NAME="iojs" fi -if [ -n "$(arch | grep aarch64)" ]; then +if [ -n "$(uname -a | grep aarch64)" ]; then ARCH="arm64" -elif [ -n "$(arch | grep 64)" ]; then +elif [ -n "$(uname -a | grep 64)" ]; then ARCH="x64" -elif [ -n "$(arch | grep armv8l)" ]; then +elif [ -n "$(uname -a | grep armv8l)" ]; then ARCH="arm64" -elif [ -n "$(arch | grep armv7l)" ]; then +elif [ -n "$(uname -a | grep armv7l)" ]; then ARCH="armv7l" -elif [ -n "$(arch | grep armv6l)" ]; then +elif [ -n "$(uname -a | grep armv6l)" ]; then ARCH="armv6l" else ARCH="x86" @@ -59,11 +63,14 @@ if [ -n "${NODEJS_VER}" ]; then fi mkdir -p ${NODEJS_UNTAR}/ - tar xf ${NODEJS_LOCAL} -C ${NODEJS_UNTAR}/ --strip-components=1 - rm ${NODEJS_UNTAR}/{LICENSE,CHANGELOG.md,README.md} - sudo rsync -a "${NODEJS_UNTAR}/" "$node_install_path/" + # --strip-components isn't portable, switch to portable version by performing move step after untar + tar xf ${NODEJS_LOCAL} -C ${NODEJS_UNTAR}/ #--strip-components=1 + 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 ${NODEJS_UNTAR}/{LICENSE,CHANGELOG.md,README.md} + $sudo_cmd rsync -av "${NODEJS_UNTAR}/" "$node_install_path/" + rm -rf "${NODEJS_UNTAR}" - - sudo chown -R $(whoami) "$node_install_path/lib/node_modules/" - sudo chown $(whoami) ""$node_install_path"/bin/" -fi + $sudo_cmd chown -R $(whoami) "$node_install_path/lib/node_modules/" + $sudo_cmd chown $(whoami) ""$node_install_path"/bin/" +fi \ No newline at end of file