Skip to content

Instantly share code, notes, and snippets.

@apendua
Last active August 29, 2015 14:01
Show Gist options
  • Save apendua/0f175c05b9eb4af4a02f to your computer and use it in GitHub Desktop.
Save apendua/0f175c05b9eb4af4a02f to your computer and use it in GitHub Desktop.
meteor installation script which does not copy launcher to /usr/local/bin
#!/bin/sh
# This is the Meteor install script!
# Are you looking at this in your web browser, and would like to install Meteor?
# Just open up your terminal and type:
#
# curl https://install.meteor.com/ | sh
#
# Meteor currently supports:
# - Mac: OS X 10.6 and above
# - Linux: x86 and x86_64 systems
# Now, on to the actual installer!
## NOTE sh NOT bash. This script should be POSIX sh only, since we don't
## know what shell the user has. Debian uses 'dash' for 'sh', for
## example.
# Is Meteor already installed (in /usr/local/bin (engine) or /usr/bin
# (pre-engine)? If so, just run the updater instead of starting from
# scratch. (This means that if you have pre-engine installed and run this curl
# install script instead of "meteor update", the existing install will be
# cleaned up.)
if [ -x /usr/local/bin/meteor ]; then
exec /usr/local/bin/meteor update
fi
if [ -x /usr/bin/meteor ]; then
exec /usr/bin/meteor update
fi
PREFIX="~/usr/local"
set -e
set -u
# Let's display everything on stderr.
exec 1>&2
UNAME=$(uname)
if [ "$UNAME" != "Linux" -a "$UNAME" != "Darwin" ] ; then
echo "Sorry, this OS is not supported yet."
exit 1
fi
if [ "$UNAME" = "Darwin" ] ; then
### OSX ###
if [ "i386" != "$(uname -p)" -o "1" != "$(sysctl -n hw.cpu64bit_capable 2>/dev/null || echo 0)" ] ; then
# Can't just test uname -m = x86_64, because Snow Leopard can
# return other values.
echo "Only 64-bit Intel processors are supported at this time."
exit 1
fi
ARCH="x86_64"
elif [ "$UNAME" = "Linux" ] ; then
### Linux ###
ARCH=$(uname -m)
if [ "$ARCH" != "i686" -a "$ARCH" != "x86_64" ] ; then
echo "Unusable architecture: $ARCH"
echo "Meteor only supports i686 and x86_64 for now."
exit 1
fi
fi
PLATFORM="${UNAME}_${ARCH}"
trap "echo Installation failed." EXIT
# If you already have a warehouse (but don't have meteor in PATH), we do a clean
# install here:
[ -e "$HOME/.meteor" ] && rm -rf "$HOME/.meteor"
TARBALL_URL="https://warehouse.meteor.com/bootstrap/0.8.1.2/meteor-bootstrap-${PLATFORM}.tar.gz"
INSTALL_TMPDIR="$HOME/.meteor-install-tmp"
rm -rf "$INSTALL_TMPDIR"
mkdir "$INSTALL_TMPDIR"
echo "Downloading Meteor distribution"
curl --progress-bar --fail "$TARBALL_URL" | tar -xzf - -C "$INSTALL_TMPDIR"
# bomb out if it didn't work, eg no net
test -x "${INSTALL_TMPDIR}/.meteor/meteor"
mv "${INSTALL_TMPDIR}/.meteor" "$HOME"
rmdir "${INSTALL_TMPDIR}"
# just double-checking :)
test -x "$HOME/.meteor/meteor"
echo
echo "Meteor 0.8.1.2 has been installed in your home directory (~/.meteor)."
cat <<"EOF"
Now you need to do one of the following:
(1) Add ~/.meteor to your path, or
(2) Run this command as root:
cp ~/.meteor/tools/latest/launch-meteor /usr/bin/meteor
Then to get started, take a look at 'meteor --help' or see the docs at
docs.meteor.com.
EOF
trap - EXIT
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment