kopia lustrzana https://github.com/c9/core
120 wiersze
2.8 KiB
Bash
Executable File
120 wiersze
2.8 KiB
Bash
Executable File
#!/bin/bash -e
|
|
|
|
set -e
|
|
has() {
|
|
type "$1" > /dev/null 2>&1
|
|
return $?
|
|
}
|
|
|
|
if has "curl"; then
|
|
DOWNLOAD="curl -L "
|
|
elif has "wget"; then
|
|
DOWNLOAD="wget -O - "
|
|
else
|
|
echo "Error: you need curl or wget to proceed" >&2;
|
|
exit 1
|
|
fi
|
|
|
|
cd "$(dirname "$0")/.."
|
|
SOURCE=$(pwd)
|
|
|
|
uname="$(uname -a)"
|
|
os=
|
|
arch="$(uname -m)"
|
|
case "$uname" in
|
|
Linux\ *) os=linux ;;
|
|
Darwin\ *) os=darwin ;;
|
|
SunOS\ *) os=sunos ;;
|
|
FreeBSD\ *) os=freebsd ;;
|
|
CYGWIN*) os=windows ;;
|
|
MINGW*) os=windows ;;
|
|
MSYS_NT*) os=windows ;;
|
|
esac
|
|
case "$uname" in
|
|
*x86_64*) arch=x64 ;;
|
|
*i*86*) arch=x86 ;;
|
|
*armv6l*) arch=arm-pi ;;
|
|
*armv7l*) arch=arm-pi ;;
|
|
esac
|
|
|
|
red=$'\e[01;31m'
|
|
green=$'\e[01;32m'
|
|
yellow=$'\e[01;33m'
|
|
blue=$'\e[01;34m'
|
|
magenta=$'\e[01;35m'
|
|
resetColor=$'\e[0m'
|
|
|
|
# NO_PULL=
|
|
# NO_GLOBAL_INSTALL=
|
|
# FORCE=
|
|
|
|
updateNodeModules() {
|
|
echo "${magenta}--- Running npm install --------------------------------------------${resetColor}"
|
|
safeInstall(){
|
|
deps=$("$NODE" -e 'console.log(Object.keys(require("./package.json").dependencies).join(" "))');
|
|
for m in ${deps[@]}; do echo "$m";
|
|
"$NPM" install --loglevel warn "$m"
|
|
done
|
|
}
|
|
"$NPM" install || safeInstall
|
|
echo "${magenta}--------------------------------------------------------------------${resetColor}"
|
|
}
|
|
|
|
updateCore() {
|
|
if [ "$NO_PULL" ]; then
|
|
return 0;
|
|
fi
|
|
|
|
# without this git merge fails on windows
|
|
mv ./scripts/install-sdk.sh './scripts/.#install-sdk-tmp.sh'
|
|
rm -f ./scripts/.install-sdk-tmp.sh
|
|
cp './scripts/.#install-sdk-tmp.sh' ./scripts/install-sdk.sh
|
|
git checkout -- ./scripts/install-sdk.sh
|
|
|
|
git remote add c9 https://github.com/c9/core 2> /dev/null || true
|
|
git fetch c9
|
|
git merge c9/master --ff-only || \
|
|
echo "${yellow}Couldn't automatically update sdk core ${resetColor}"
|
|
}
|
|
|
|
|
|
|
|
installGlobalDeps() {
|
|
if ! [[ -f ~/.c9/installed ]]; then
|
|
if [[ $os == "windows" ]]; then
|
|
URL=https://raw.githubusercontent.com/cloud9ide/sdk-deps-win32
|
|
else
|
|
URL=https://raw.githubusercontent.com/c9/install
|
|
fi
|
|
$DOWNLOAD $URL/master/install.sh | bash
|
|
fi
|
|
}
|
|
|
|
############################################################################
|
|
export C9_DIR="$HOME"/.c9
|
|
if ! [[ $(which npm) ]]; then
|
|
if [[ $os == "windows" ]]; then
|
|
export PATH="$C9_DIR:$C9_DIR/node_modules/.bin:$PATH"
|
|
else
|
|
export PATH="$C9_DIR/node/bin:$C9_DIR/node_modules/.bin:$PATH"
|
|
fi
|
|
fi
|
|
NPM=npm
|
|
NODE=node
|
|
|
|
# cleanup build cache since c9.static doesn't do this automatically yet
|
|
rm -rf ./build/standalone
|
|
|
|
# pull the latest version
|
|
updateCore || true
|
|
|
|
installGlobalDeps
|
|
updateNodeModules
|
|
|
|
echo -e "c9.*\n.gitignore" > plugins/.gitignore
|
|
echo -e "nak\n.gitignore" > node_modules/.gitignore
|
|
|
|
echo "Success!"
|
|
|
|
echo "run '${yellow}node server.js -p 8080 -a :${resetColor}' to launch Cloud9"
|