#!/bin/bash # # Copyright (c) 2014 ThoughtWorks, Inc. # # Pixelated is free software: you can redistribute it and/or modify # it under the terms of the GNU Affero General Public License as published by # the Free Software Foundation, either version 3 of the License, or # (at your option) any later version. # # Pixelated is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU Affero General Public License for more details. # # You should have received a copy of the GNU Affero General Public License # along with Pixelated. If not, see . # test dependencies set -e export NODE_PATH='/home/vagrant/boxed_node_modules/node_modules/' if [ ! $USERNAME ] then export USERNAME=`whoami` fi usage() { echo "Usage: $0 [-v ] [-n ]" 1>&2; exit 1; } VIRTUALENV_PATH=".virtualenv" CUSTOM_NODE_MODULES_LOCATION="" while getopts "n:v:" OPT; do case "${OPT}" in v) VIRTUALENV_PATH=${OPTARG} ;; n) # custom node_modules installation CUSTOM_NODE_MODULES_LOCATION=${OPTARG} ;; *) usage ;; esac done shift $((OPTIND-1)) function check_installed() { set +e which $1 if [ $? -ne 0 ]; then echo "## You must have ${1} installed and in the PATH to run Pixelated-User-Agent" echo "## Check our wiki for more information on dependencies:" echo "## https://github.com/pixelated-project/pixelated-user-agent/wiki/Installing-dependencies" echo "## exiting..." exit 1 fi set -e } # The below is necessary to allow node to use enough memory # so that installing phantomjs won't fail mkdir -p /home/vagrant/bin cat > /home/vagrant/bin/node <&2 return fi if [ ! -e "$LOCATION" ] ; then mkdir "$LOCATION" pushd "$LOCATION" ln -s "$WEBUI_DIR/package.json" package.json npm install popd fi if [ ! -h "node_modules" ] ; then rm -Rf "node_modules" ln -s "$LOCATION/node_modules" node_modules fi } for dependency in node npm ruby virtualenv git gpg compass; do check_installed $dependency done # install web-ui dependencies cd web-ui UIPATH=`pwd` if [ -z "$CUSTOM_NODE_MODULES_LOCATION" ] ; then npm install else install_node_modules_at_custom_location "$CUSTOM_NODE_MODULES_LOCATION" fi node_modules/bower/bin/bower -V install --config.interactive=false --allow-root LC_ALL=en_US.UTF-8 ./go build # install service dependencies cd .. rm -rf "$VIRTUALENV_PATH" virtualenv "$VIRTUALENV_PATH" source "$VIRTUALENV_PATH/bin/activate" # they can't be on the same command because it breaks pip upgrade pip install --upgrade pip pip install --upgrade setuptools make setup pip uninstall -y enum34 && pip install enum34 pip uninstall -y pysqlcipher && pip install pysqlcipher # this is needed so pysqlcipher gets recompiled with the right version of glibc # print usage cat <