From c243b8bb89ae2a20b3b9bbc023854aa9abeefcfe Mon Sep 17 00:00:00 2001 From: AJ ONeal Date: Fri, 7 Apr 2017 02:05:09 +0000 Subject: [PATCH] Update setup.bash --- setup.bash | 295 +++-------------------------------------------------- 1 file changed, 14 insertions(+), 281 deletions(-) diff --git a/setup.bash b/setup.bash index 853999d..654c15d 100644 --- a/setup.bash +++ b/setup.bash @@ -1,291 +1,24 @@ #!/bin/bash -# Installs node.js + dependencies for both Ubuntu and OS X +TMP_FILE='/tmp/node-installer-new.sh' -# -# See https://github.com/coolaj86/node-install-script -# +set -e +rm -rf /tmp/node-installer-new.sh -# curl -fsSL https://example.com/setup.bash | bash -# wget -nv https://example.com/setup.bash -O - | bash +echo "Downloading and running the new installer script from https://git.daplie.com/coolaj86/node-install-script/raw/master/setup.bash" -NODEJS_NAME="node" -NODEJS_BASE_URL="https://nodejs.org" -BASE_URL="https://raw.githubusercontent.com/coolaj86/node-install-script/master" -NO_FAIL2BAN="" -OS="unsupported" -ARCH="" -NODEJS_VER="" -SETUP_FILE="" - -clear +SETUP_URL='https://git.daplie.com/coolaj86/node-install-script/raw/master/setup.bash' - -######################### -# Which OS and version? # -######################### - -if [ "$(uname | grep -i 'Darwin')" ]; then - OSX_VER="$(sw_vers | grep ProductVersion | cut -d':' -f2 | cut -f2)" - OSX_MAJOR="$(echo ${OSX_VER} | cut -d'.' -f1)" - OSX_MINOR="$(echo ${OSX_VER} | cut -d'.' -f2)" - OSX_PATCH="$(echo ${OSX_VER} | cut -d'.' -f3)" - - # - # Major - # - if [ "$OSX_MAJOR" -lt 10 ]; then - echo "unsupported OS X version (os 9-)" - exit 1 - fi - - if [ "$OSX_MAJOR" -gt 10 ]; then - echo "unsupported OS X version (os 11+)" - exit 1 - fi - - # - # Minor - # - if [ "$OSX_MINOR" -le 5 ]; then - echo "unsupported OS X version (os 10.5-)" - exit 1 - fi - - # Snow - if [ "$OSX_MINOR" -eq 6 ]; then - OS='snow' - fi - - # Lion - if [ $OSX_MINOR -eq 7 ]; then - OS='lion' - fi - - # Mountain Lion - if [ "$OSX_MINOR" -eq 8 ]; then - OS='mountain' - fi - - # Mavericks, Yosemite - if [ "$OSX_MINOR" -ge 9 ]; then - OS='mavericks' - fi - - if [ -n "$(sysctl hw | grep 64bit | grep ': 1')" ]; then - ARCH="64" - else - ARCH="32" - fi -elif [ "$(uname | grep -i 'Linux')" ]; then - if [ ! -f "/etc/issue" ]; then - echo "unsupported linux os" - exit 1 - fi - - if [ -n "$(arch | grep 64)" ]; then - ARCH="64" - else - ARCH="32" - fi - - if [ "$(cat /etc/issue | grep -i 'Ubuntu')" ]; then - OS='ubuntu' - elif [ "$(cat /etc/issue | grep -i 'Linux Mint')" ]; then - OS='ubuntu' - elif [ "$(cat /etc/issue | grep -i 'elementary OS')" ]; then - OS='ubuntu' - elif [ "$(cat /etc/issue | grep -i 'Debian')" ]; then - OS='ubuntu' - elif [ "$(cat /etc/issue | grep -i 'Trisquel')" ]; then - OS='ubuntu' - elif [ "$(cat /etc/issue | grep -i 'Zorin')" ]; then - OS='ubuntu' - elif [ "$(cat /etc/issue | grep -i 'Raspbian')" ]; then - OS='raspbian' - elif [ "$(cat /etc/issue | grep -i 'Fedora')" ]; then - OS='fedora' - fi -else - echo "unsupported unknown os (non-mac, non-linux)" - exit 1 +if [ -n "$(which curl)" ]; then + curl --silent "$SETUP_URL" \ + -o "$TMP_FILE" || echo 'error downloading newer deps script:' "$SETUP_URL" + +elif [ -n "$(which wget)" ]; then + wget --quiet "$SETUP_URL" \ + -O "$TMP_FILE" || echo 'error downloading newer deps script:' "$SETUP_URL" fi -case "${OS}" in - fedora) - echo "FEDORA not yet supported (feel free to pull request)" - exit 1 - ;; - ubuntu) - SETUP_FILE="ubuntu" - ;; - raspbian) - SETUP_FILE="ubuntu" - ;; - yosemite) - # mavericks - SETUP_FILE="mavericks" - ;; - mavericks) - SETUP_FILE="mavericks" - ;; - mountain) - echo "Mountain Lion not yet supported (feel free to pull request)" - exit 1 - ;; - lion) - echo "Lion not yet supported (feel free to pull request)" - exit 1 - ;; - snow) - echo "Snow Leopard not yet supported (feel free to pull request)" - exit 1 - ;; - *) - echo "unsupported unknown os ${OS}" - exit 1 - ;; -esac +set +e - - - -####################### -# Download installers # -####################### - -echo "Preparing to install ${NODEJS_NAME} (and common development dependencies) for ${OS}" "${ARCH}" - -INSTALL_DEPS_FILE="setup-deps-${SETUP_FILE}.bash" -INSTALL_FILE="setup-node-${SETUP_FILE}.bash" -if [ ! -e "/tmp/${INSTALL_DEPS_FILE}" ] -then - if [ -n "$(which curl)" ]; then - curl --silent "${BASE_URL}/${INSTALL_DEPS_FILE}" \ - -o "/tmp/${INSTALL_DEPS_FILE}" || echo 'error downloading os deps script: '"${BASE_URL}/${INSTALL_DEPS_FILE}" - curl --silent "${BASE_URL}/${INSTALL_FILE}" \ - -o "/tmp/${INSTALL_FILE}" || echo 'error downloading os setup script: '"${BASE_URL}/${INSTALL_FILE}" - elif [ -n "$(which wget)" ]; then - wget --quiet "${BASE_URL}/${INSTALL_DEPS_FILE}" \ - -O "/tmp/${INSTALL_DEPS_FILE}" || echo 'error downloading os deps script: '"${BASE_URL}/${INSTALL_DEPS_FILE}" - wget --quiet "${BASE_URL}/${INSTALL_FILE}" \ - -O "/tmp/${INSTALL_FILE}" || echo 'error downloading os setup script: '"${BASE_URL}/${INSTALL_FILE}" - else - echo "Found neither 'curl' nor 'wget'. Can't Continue." - exit 1 - fi -fi - -if [ ! -e "/tmp/${INSTALL_DEPS_FILE}" ] -then - echo "Error Downloading Install File" - exit 1 -fi - - -################ -# DEPENDENCIES # -################ - -if [ -z "$(which fail2ban-server | grep fail2ban)" ]; then - echo "" - echo "Your server didn't come with fail2ban preinstalled!!!" - echo "Among other things, fail2ban secures ssh so that your server isn't reaped by botnets." - echo "" - echo "Since you're obviously connecting this computer to a network, you should install fail2ban before continuing" - echo "" - echo "Install fail2ban? [Y/n]" - echo "(if unsure, just hit [enter])" - read INSTALL_FAIL2BAN - - if [ "n" == "${INSTALL_FAIL2BAN}" ] || [ "no" == "${INSTALL_FAIL2BAN}" ] || [ "N" == "${INSTALL_FAIL2BAN}" ] || [ "NO" == "${INSTALL_FAIL2BAN}" ]; then - echo "" - echo "I don't think you understand: This is important." - echo "" - echo "Your server will be under constant attack by botnets via ssh." - echo "It only takes a few extra seconds to install and the defaults are adequate for protecting you." - echo "" - echo "Change your mind?" - echo "Ready to install fail2ban? [Y/n]" - read INSTALL_FAIL2BAN - if [ "n" == "${INSTALL_FAIL2BAN}" ] || [ "no" == "${INSTALL_FAIL2BAN}" ] || [ "N" == "${INSTALL_FAIL2BAN}" ] || [ "NO" == "${INSTALL_FAIL2BAN}" ]; then - clear - echo "you make me sad :-(" - sleep 0.5 - echo "but whatever, it's your funeral..." - sleep 1 - NO_FAIL2BAN="nope" - else - echo "Phew, dodged the bullet on that one... Will install fail2ban.. :-)" - fi - fi -fi - -bash "/tmp/${INSTALL_DEPS_FILE}" "${NO_FAIL2BAN}" - -######################### -# Which node.js VERSION ? # -######################### - -if [ -f "/tmp/NODEJS_VER" ]; then - NODEJS_VER=$(cat /tmp/NODEJS_VER | grep v) -elif [ -f "/tmp/IOJS_VER" ]; then - NODEJS_VER=$(cat /tmp/IOJS_VER | grep v) -fi - -if [ -n "$NODEJS_VER" ]; then - NODEJS_VERT=$(echo ${NODEJS_VER} | cut -c 2- | cut -d '.' -f1) - - if [ $NODEJS_VERT -ge 1 ] && [ $NODEJS_VERT -lt 4 ] - then - echo "Selecting io.js instead of node.js for this version (>= 1.0.0 < 4.0.0)" - NODEJS_BASE_URL="https://iojs.org" - NODEJS_NAME="iojs" - fi -fi - -if [ -z "$NODEJS_VER" ]; then - if [ -n "$(which curl)" ]; then - NODEJS_VER=$(curl -fsL "$NODEJS_BASE_URL/dist/index.tab" | head -2 | tail -1 | cut -f 1) \ - || echo "error automatically determining current ${NODEJS_NAME} version" - elif [ -n "$(which wget)" ]; then - NODEJS_VER=$(wget --quiet "$NODEJS_BASE_URL/dist/index.tab" -O - | head -2 | tail -1 | cut -f 1) \ - || echo "error automatically determining current ${NODEJS_NAME} version" - else - echo "Found neither 'curl' nor 'wget'. Can't Continue." - exit 1 - fi -fi - -# -# node -# -if [ -n "$(which node | grep node 2>/dev/null)" ]; then -# node of some version is already installed - if [ "${NODEJS_VER}" == "$(node -v 2>/dev/null)" ]; then - echo node ${NODEJS_VER} is already installed - else - echo "" - echo "HEY, LISTEN:" - echo "" - echo "node.js is already installed as node $(node -v | grep v)" - echo "" - echo "to reinstall please first run: rm $(which node)" - echo "" - fi - - NODEJS_VER="" -fi - -if [ -n "${NODEJS_VER}" ]; then - bash "/tmp/${INSTALL_FILE}" "${NODEJS_VER}" -fi - -# jshint -if [ -z "$(which jshint | grep jshint)" ]; then - echo "installing jshint..." - npm install --silent jshint -g > /dev/null -fi - -echo "" +bash $TMP_FILE \ No newline at end of file