Skip to content

Commit

Permalink
added v5.x setup script
Browse files Browse the repository at this point in the history
  • Loading branch information
rvagg committed Oct 29, 2015
1 parent e3a6242 commit 485c93c
Show file tree
Hide file tree
Showing 3 changed files with 150 additions and 11 deletions.
14 changes: 4 additions & 10 deletions deb/setup_4.x
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
# Discussion, issues and change requests at:
# https://github.com/nodesource/distributions
#
# Script to install the NodeSource Node.js 4.x repo onto a
# Script to install the NodeSource Node.js 4.x LTS Argon repo onto a
# Debian or Ubuntu system.
#
# Run as root or insert `sudo -E` before `bash`:
Expand All @@ -15,12 +15,6 @@

export DEBIAN_FRONTEND=noninteractive

# enforce to be with root privileges
if (( $EUID != 0 )); then
echo "Please run this script with root privileges"
exit 1
fi

print_status() {
echo
echo "## $1"
Expand All @@ -42,7 +36,7 @@ exec_cmd() {
}


print_status "Installing the NodeSource Node.js 4.x repo..."
print_status "Installing the NodeSource Node.js 4.x LTS Argon repo..."


PRE_INSTALL_PKGS=""
Expand Down Expand Up @@ -138,7 +132,7 @@ else
exec_cmd 'wget -qO- https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -'
fi

print_status 'Creating apt sources list file for the NodeSource Node.js 4.x repo...'
print_status 'Creating apt sources list file for the NodeSource Node.js 4.x LTS Argon repo...'

exec_cmd "echo 'deb https://deb.nodesource.com/node_4.x ${DISTRO} main' > /etc/apt/sources.list.d/nodesource.list"
exec_cmd "echo 'deb-src https://deb.nodesource.com/node_4.x ${DISTRO} main' >> /etc/apt/sources.list.d/nodesource.list"
Expand All @@ -147,4 +141,4 @@ print_status 'Running `apt-get update` for you...'

exec_cmd 'apt-get update'

print_status 'Run `apt-get install nodejs` (as root) to install Node.js 4.x and npm'
print_status 'Run `apt-get install nodejs` (as root) to install Node.js 4.x LTS Argon and npm'
144 changes: 144 additions & 0 deletions deb/setup_5.x
Original file line number Diff line number Diff line change
@@ -0,0 +1,144 @@
#!/bin/bash

# Discussion, issues and change requests at:
# https://github.com/nodesource/distributions
#
# Script to install the NodeSource Node.js 5.x repo onto a
# Debian or Ubuntu system.
#
# Run as root or insert `sudo -E` before `bash`:
#
# curl -sL https://deb.nodesource.com/setup_5.x | bash -
# or
# wget -qO- https://deb.nodesource.com/setup_5.x | bash -
#

export DEBIAN_FRONTEND=noninteractive

print_status() {
echo
echo "## $1"
echo
}

bail() {
echo 'Error executing command, exiting'
exit 1
}

exec_cmd_nobail() {
echo "+ $1"
bash -c "$1"
}

exec_cmd() {
exec_cmd_nobail "$1" || bail
}


print_status "Installing the NodeSource Node.js 5.x repo..."


PRE_INSTALL_PKGS=""

# Check that HTTPS transport is available to APT
# (Check snaked from: https://get.docker.io/ubuntu/)

if [ ! -e /usr/lib/apt/methods/https ]; then
PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} apt-transport-https"
fi

if [ ! -x /usr/bin/lsb_release ]; then
PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} lsb-release"
fi

if [ ! -x /usr/bin/curl ] && [ ! -x /usr/bin/wget ]; then
PRE_INSTALL_PKGS="${PRE_INSTALL_PKGS} curl"
fi

# Populating Cache
print_status "Populating apt-get cache..."
exec_cmd 'apt-get update'

if [ "X${PRE_INSTALL_PKGS}" != "X" ]; then
print_status "Installing packages required for setup:${PRE_INSTALL_PKGS}..."
# This next command needs to be redirected to /dev/null or the script will bork
# in some environments
exec_cmd "apt-get install -y${PRE_INSTALL_PKGS} > /dev/null 2>&1"
fi

DISTRO=$(lsb_release -c -s)

check_alt() {
if [ "X${DISTRO}" == "X${2}" ]; then
echo
echo "## You seem to be using ${1} version ${DISTRO}."
echo "## This maps to ${3} \"${4}\"... Adjusting for you..."
DISTRO="${4}"
fi
}

check_alt "Kali" "sana" "Debian" "jessie"
check_alt "Debian" "stretch" "Debian" "jessie"
check_alt "Linux Mint" "rafaela" "Ubuntu" "trusty"
check_alt "Linux Mint" "rebecca" "Ubuntu" "trusty"
check_alt "Linux Mint" "qiana" "Ubuntu" "trusty"
check_alt "Linux Mint" "maya" "Ubuntu" "precise"
check_alt "LMDE" "betsy" "Debian" "jessie"
check_alt "elementaryOS" "luna" "Ubuntu" "precise"
check_alt "elementaryOS" "freya" "Ubuntu" "trusty"
check_alt "Trisquel" "toutatis" "Ubuntu" "precise"
check_alt "Trisquel" "belenos" "Ubuntu" "trusty"
check_alt "BOSS" "anokha" "Debian" "wheezy"

if [ "X${DISTRO}" == "Xdebian" ]; then
print_status "Unknown Debian-based distribution, checking /etc/debian_version..."
NEWDISTRO=$([ -e /etc/debian_version ] && cut -d/ -f1 < /etc/debian_version)
if [ "X${DISTRO}" == "X" ]; then

This comment has been minimized.

Copy link
@francorop

francorop Nov 20, 2015

IMHO is wrong, it should be:
if [ "X${NEWDISTRO}" == "X" ]; then

This comment has been minimized.

Copy link
@rvagg

rvagg Nov 22, 2015

Author Contributor

aye, thankyou, fixed and updated!

print_status "Could not determine distribution from /etc/debian_version..."
else
DISTRO=$NEWDISTRO
print_status "Found \"${DISTRO}\" in /etc/debian_version..."
fi
fi

print_status "Confirming \"${DISTRO}\" is supported..."

if [ -x /usr/bin/curl ]; then
exec_cmd_nobail "curl -sLf -o /dev/null 'https://deb.nodesource.com/node_5.x/dists/${DISTRO}/Release'"
RC=$?
else
exec_cmd_nobail "wget -qO /dev/null -o /dev/null 'https://deb.nodesource.com/node_5.x/dists/${DISTRO}/Release'"
RC=$?
fi

if [[ $RC != 0 ]]; then
print_status "Your distribution, identified as \"${DISTRO}\", is not currently supported, please contact NodeSource at https://github.com/nodesource/distributions/issues if you think this is incorrect or would like your distribution to be considered for support"
exit 1
fi

if [ -f "/etc/apt/sources.list.d/chris-lea-node_js-$DISTRO.list" ]; then
print_status 'Removing Launchpad PPA Repository for NodeJS...'

exec_cmd_nobail 'add-apt-repository -y -r ppa:chris-lea/node.js'
exec_cmd "rm -f /etc/apt/sources.list.d/chris-lea-node_js-${DISTRO}.list"
fi

print_status 'Adding the NodeSource signing key to your keyring...'

if [ -x /usr/bin/curl ]; then
exec_cmd 'curl -s https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -'
else
exec_cmd 'wget -qO- https://deb.nodesource.com/gpgkey/nodesource.gpg.key | apt-key add -'
fi

print_status 'Creating apt sources list file for the NodeSource Node.js 5.x repo...'

exec_cmd "echo 'deb https://deb.nodesource.com/node_5.x ${DISTRO} main' > /etc/apt/sources.list.d/nodesource.list"
exec_cmd "echo 'deb-src https://deb.nodesource.com/node_5.x ${DISTRO} main' >> /etc/apt/sources.list.d/nodesource.list"

print_status 'Running `apt-get update` for you...'

exec_cmd 'apt-get update'

print_status 'Run `apt-get install nodejs` (as root) to install Node.js 5.x and npm'
3 changes: 2 additions & 1 deletion deb/src/build.sh
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,8 @@ RELEASES=( "node_0.10::nodejs:Node.js 0.10"
"iojs_1.x:_iojs_1.x:iojs:io.js 1.x"
"iojs_2.x:_iojs_2.x:iojs:io.js 2.x"
"iojs_3.x:_iojs_3.x:iojs:io.js 3.x"
"node_4.x:_4.x:nodejs:Node.js 4.x"
"node_4.x:_4.x:nodejs:Node.js 4.x LTS Argon"
"node_5.x:_5.x:nodejs:Node.js 5.x"
)
SOURCE=_setup.sh
DEST=../setup
Expand Down

2 comments on commit 485c93c

@francorop
Copy link

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

IMHO there is a typo in both scripts setup_4.x and setup_5.x, at rows 97:
instead of
if [ "X${DISTRO}" == "X" ]; then
should be:
if [ "X${NEWDISTRO}" == "X" ]; then

@rvagg
Copy link
Contributor Author

@rvagg rvagg commented on 485c93c Nov 22, 2015

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated in deb/src/_setup.sh, rebuilt and updated on deb.nodesource.com, thanks for the eyes on the code!

Please sign in to comment.