Last active
August 29, 2015 13:57
-
-
Save danielkza/9698358 to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| #!/bin/bash | |
| APT_GET_INSTALL=apt-get install -y --no-install-recommends | |
| DATABASE_DEFAULT_USER='kalibro' | |
| DATABASE_DEFAULT_PASSWORD='kalibro' | |
| if [ -n "${DATABASE_URL}" ]; then | |
| echo "Using DATABASE_URL '${DATABASE_URL}'. Not installing postgres" | |
| if [ -z "$DATABASE_TYPE" ]; then | |
| echo "Missing DATABASE_TYPE" | |
| exit 1 | |
| fi | |
| [ -z "$DATABASE_USER" ] && \ | |
| DATABASE_USER=${DATABASE_DEFAULT_USER} | |
| [ -z "$DATABASE_PASSWORD" ] && \ | |
| DATABASE_PASSWORD=${DATABASE_DEFAULT_PASSWORD} | |
| [ -z "$DATABASE_TEST_USER" ] && \ | |
| DATABASE_TEST_USER=${DATABASE_DEFAULT_USER} | |
| [ -z "$DATABASE_TEST_PASSWORD" ] && \ | |
| DATABASE_TEST_PASSWORD=${DATABASE_DEFAULT_PASSWORD} | |
| else | |
| DATABASE_URL='jdbc:postgresql://localhost:5432' | |
| DATABASE_TYPE='POSTGRESQL' | |
| echo "Doing local postgres installation with DATABASE_URL '${DATABASE_URL}'" | |
| DATABASE_USER=${DATABASE_DEFAULT_USER} | |
| if [ -z "${DATABASE_PASSWORD}" ]; then | |
| if [ -n "${PS1}" ]; then | |
| echo "Please input the credentials for the new kalibro DB user." | |
| echo "Leave blank to use defaults." | |
| read -s -p "Username: \[${DATABASE_DEFAULT_USER}\] " DATABASE_USER | |
| read -s -p "Password: \[${DATABASE_DEFAULT_PASSWORD}\] " DATABASE_PASSWORD | |
| if [ -n "${DATABASE_PASSWORD}" ]; then | |
| read -s -p "Confirm Password: " DATABASE_PASSWORD_CONFIRM | |
| if [ "${DATABASE_PASSWORD}" != "${DATABASE_PASSWORD_CONFIRM}" ]; then | |
| echo "Passwords don't match." | |
| exit 1 | |
| fi | |
| else | |
| DATABASE_PASSWORD=${DATABASE_DEFAULT_PASSWORD} | |
| fi | |
| [ -z "${DATABASE_USER}" ] && \ | |
| DATABASE_USER=${DATABASE_DEFAULT_USER} | |
| else | |
| echo "Database credentials not set, using defaults" | |
| echo " User: '${DATABASE_DEFAULT_USER}'" | |
| echo " Password: '${DATABASE_DEFAULT_PASSWORD}'" | |
| DATABASE_PASSWORD=${DATABASE_DEFAULT_PASSWORD} | |
| fi | |
| fi | |
| DATABASE_TEST_USER=${DATABASE_USER} | |
| DATABASE_TEST_PASSWORD=${DATABASE_PASSWORD} | |
| PG_INSTALL=1 | |
| fi | |
| set -ex | |
| tmpdir=$(mktemp -d) | |
| trap 'rm -rf "${tmpdir}"' EXIT | |
| # Analizo | |
| echo | sudo tee /etc/apt/sources.list.d/analizo.list <<'EOF' | |
| deb http://analizo.org/download/ ./ | |
| deb-src http://analizo.org/download/ ./ | |
| EOF | |
| echo | sudo tee /etc/apt/preferences.d/analizo <<'EOF' | |
| Package: * | |
| Pin: origin analizo.org | |
| Pin-Priority: 400 | |
| EOF | |
| wget -O - http://analizo.org/download/signing-key.asc | sudo apt-key add - | |
| sudo apt-get update | |
| sudo $APT_GET_INSTALL tomcat6 analizo | |
| sudo service tomcat6 stop | |
| # SCMs | |
| sudo $APT_GET_INSTALL git #mercurial bazaar subversion cvs tar unzip | |
| # Database configuration | |
| if [ -n "${PG_INSTALL}" ]; then | |
| LC_ALL=C.UTF-8 sudo $APT_GET_INSTALL postgresql libpostgresql-jdbc-java | |
| sudo service postgresql start | |
| PSQL='sudo -u postgres psql' | |
| if ! $PSQL -lqt | cut -d '|' -f 1 | grep -q kalibro; then | |
| $PSQL --set ON_ERROR_STOP=1 <<EOF | |
| CREATE ROLE ${DATABASE_USER} | |
| LOGIN ENCRYPTED PASSWORD '${DATABASE_PASSWORD}' | |
| VALID UNTIL 'infinity'; | |
| CREATE DATABASE kalibro | |
| WITH ENCODING='UTF8' | |
| OWNER=${DATABASE_USER} | |
| CONNECTION LIMIT=-1; | |
| CREATE DATABASE kalibro_test | |
| WITH ENCODING='UTF8' | |
| OWNER=${DATABASE_USER} | |
| CONNECTION LIMIT=-1; | |
| EOF | |
| fi | |
| fi | |
| # Kalibro | |
| if [ -f "/var/tmp/KalibroService.tar.gz" ]; then | |
| cp "/var/tmp/KalibroService.tar.gz" "${tmpdir}/" | |
| else | |
| wget https://downloads.sourceforge.net/project/kalibrometrics/KalibroService.tar.gz \ | |
| -O "${tmpdir}/KalibroService.tar.gz" | |
| cp "${tmpdir}/KalibroService.tar.gz" "/var/tmp/KalibroService.tar.gz" | |
| fi | |
| tar -xzf "${tmpdir}/KalibroService.tar.gz" -C "${tmpdir}" | |
| TOMCAT_HOME=$(eval echo ~tomcat6) | |
| if ! [ -d "${TOMCAT_HOME}" ]; then | |
| TOMCAT_HOME='/usr/share/tomcat6' | |
| if ! [ -d "${TOMCAT_HOME}" ]; then | |
| echo "Failed to determine tomcat6 home dir" | |
| exit 1 | |
| fi | |
| fi | |
| KALIBRO_TOMCAT_HOME="${TOMCAT_HOME}/.kalibro" | |
| if [ -z "${NO_KALIBRO_USER_HOME}" ] && [ -n "${SUDO_USER}" ]; then | |
| USER_HOME=$(eval echo ~${SUDO_USER}) | |
| KALIBRO_DIR=${USER_HOME}/.kalibro | |
| sudo ln -s ${KALIBRO_DIR} ${KALIBRO_TOMCAT_HOME} | |
| KALIBRO_SUDO= | |
| else | |
| KALIBRO_DIR=${KALIBRO_TOMCAT_HOME} | |
| ! [ -d ${KALIBRO_DIR} ] && sudo mkdir ${KALIBRO_DIR} | |
| KALIBRO_SUDO=sudo | |
| fi | |
| for d in ${KALIBRO_DIR}/{projects,logs}; do | |
| ! [ -d "${d}" ] && ${KALIBRO_SUDO} mkdir -p ${d} | |
| done | |
| ${KALIBRO_SUDO} chown -R :tomcat6 ${KALIBRO_DIR} | |
| ${KALIBRO_SUDO} chmod 2664 -R ${KALIBRO_DIR} | |
| ${KALIBRO_SUDO} chmod +x ${KALIBRO_DIR} | |
| echo | ${KALIBRO_SUDO} tee ${KALIBRO_DIR}/kalibro.settings <<EOF | |
| serviceSide: SERVER | |
| clientSettings: | |
| serviceAddress: "http://localhost:8080/KalibroService/" | |
| serverSettings: | |
| loadDirectory: ${KALIBRO_TOMCAT_HOME}/projects | |
| databaseSettings: | |
| databaseType: ${DATABASE_TYPE} | |
| jdbcUrl: "${DATABASE_URL}/kalibro" | |
| username: "${DATABASE_USER}" | |
| password: "${DATABASE_PASSWORD}" | |
| EOF | |
| echo | ${KALIBRO_SUDO} tee ${KALIBRO_DIR}/kalibro_test.settings <<EOF | |
| serviceSide: SERVER | |
| clientSettings: | |
| serviceAddress: "http://localhost:8080/KalibroService/" | |
| serverSettings: | |
| loadDirectory: ${KALIBRO_TOMCAT_HOME}/tests/projects | |
| databaseSettings: | |
| databaseType: ${DATABASE_TYPE} | |
| jdbcUrl: "${DATABASE_URL}/kalibro_test" | |
| username: "${DATABASE_TEST_USER}" | |
| password: "${DATABASE_TEST_PASSWORD}" | |
| EOF | |
| WEBAPPS_DIR=/var/lib/tomcat6/webapps | |
| if [ ! -d "${WEBAPPS_DIR}" ]; then | |
| sudo mkdir ${WEBAPPS_DIR} | |
| such chmod 664 -R ${WEBAPPS_DIR} | |
| sudo chmod +x ${WEBAPPS_DIR} | |
| fi | |
| sudo cp "${tmpdir}/KalibroService/KalibroService.war" "${WEBAPPS_DIR}/" | |
| #Imports sample configuration | |
| #CURRENT_DIR=$(pwd) | |
| #cd /var/lib/tomcat6/webapps/KalibroService/WEB-INF/lib | |
| #java -classpath "*" org.kalibro.ImportConfiguration ${CURRENT_DIR}/KalibroService/configs/Configuration.yml http://localhost:8080/KalibroService/ | |
| sudo service tomcat6 restart |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment