c9-core/plugins/c9.ide.installer/install/node.sh

80 wiersze
2.0 KiB
Bash

set -e
has() {
type "$1" > /dev/null 2>&1
return $?
}
if has "wget"; then
DOWNLOAD="wget --no-check-certificate -nc"
elif has "curl"; then
DOWNLOAD="curl -sSOL"
else
echo "Error: you need curl or wget to proceed" >&2;
exit 1
fi
C9_DIR="$HOME/.c9"
NPM="$C9_DIR/node/bin/npm"
cd "$C9_DIR"
download_virtualenv() {
VIRTUALENV_VERSION="virtualenv-12.0.7"
$DOWNLOAD "https://pypi.python.org/packages/source/v/virtualenv/$VIRTUALENV_VERSION.tar.gz"
tar xzf $VIRTUALENV_VERSION.tar.gz
rm $VIRTUALENV_VERSION.tar.gz
mv $VIRTUALENV_VERSION virtualenv
}
check_python() {
if which python2.7 &> /dev/null; then
PYTHONVERSION="2.7"
PYTHON="python2.7"
else
PYTHONVERSION=`python --version 2>&1`
PYTHON=python
fi
if [[ $PYTHONVERSION != *2.7* ]]; then
echo "Python version 2.7 is required to install pty.js. Please install python 2.7 and try again. You can find more information on how to install Python in the docs: https://docs.c9.io/ssh_workspaces.html"
exit 100
fi
}
configure_python() {
check_python
# when gyp is installed globally npm install pty.js won't work
# to test this use `sudo apt-get install gyp`
if [ `"$PYTHON" -c 'import gyp; print gyp.__file__' 2> /dev/null` ]; then
echo "You have a global gyp installed. Setting up VirtualEnv without global pakages"
rm -rf virtualenv
rm -rf python
installed=
if has virtualenv; then
# try global virtualenv first
(virtualenv -p python2.7 "$C9_DIR/python") && installed=1
fi
if ! [ "$installed" ]; then
download_virtualenv
"$PYTHON" virtualenv/virtualenv.py -p python2.7 "$C9_DIR/python"
fi
if [[ -f "$C9_DIR/python/bin/python2" ]]; then
PYTHON="$C9_DIR/python/bin/python2"
else
echo "Unable to setup virtualenv"
exit 1
fi
fi
"$NPM" config -g set python "$PYTHON"
"$NPM" config -g set unsafe-perm true
}
# use local npm cache
"$NPM" config -g set cache "$C9_DIR/tmp/.npm"
PYTHON=python
configure_python