Skip to content

Instantly share code, notes, and snippets.

@danielkza
Created May 22, 2014 01:08
Show Gist options
  • Select an option

  • Save danielkza/1c853c24331b1786d0b1 to your computer and use it in GitHub Desktop.

Select an option

Save danielkza/1c853c24331b1786d0b1 to your computer and use it in GitHub Desktop.
Tentativa de novo script de instalação do Kalibro
#!/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