Created
May 22, 2014 01:08
-
-
Save danielkza/1c853c24331b1786d0b1 to your computer and use it in GitHub Desktop.
Tentativa de novo script de instalação do Kalibro
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 | |
| export LC_ALL=C.UTF-8 | |
| APT_GET_INSTALL='apt-get install -y --no-install-recommends --no-install-suggests' | |
| if [ -n "${PS1}" ]; then | |
| IS_INTERACTIVE=1 | |
| else | |
| IS_INTERACTIVE=0 | |
| fi | |
| if [ $IS_INTERACTIVE -eq 0 ]; then | |
| APT_GET_INSTALL="DEBIAN_FRONTEND=noninteractive $APT_GET_INSTALL" | |
| fi | |
| 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 [ $IS_INTERACTIVE -ne 0 ]; 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 -e -x | |
| 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 | |
| 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 | |
| if ! [ -d "${KALIBRO_DIR}" ]; then | |
| mkdir ${KALIBRO_DIR} | |
| chown ${SUDO_USER} ${KALIBRO_DIR} | |
| fi | |
| 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 'g+s,a+r,ug+w,o-w' -R ${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} | |
| sudo chown :tomcat6 ${WEBAPPS_DIR} | |
| sudo 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