#!/bin/bash
trap "kill $$" SIGINT

# define the home directory for jenkins
root="$( cd "$(dirname "${BASH_SOURCE[0]}")" && pwd )"
export JENKINS_HOME="${root}"

# check whether a user exists or not and warn the caller if no users exists
users=$(find "${root}/users/" -mindepth 1 -maxdepth 1 -type d 2> /dev/null)
if [ -z "$users" ]
then
    echo <<EOL "ATTENTION:
Your jenkins does not have any users configured. Normally, annymous login is
disabled. In order to create a user, use the '${root}/create_users.sh' script."
EOL
    sleep 5
fi

keystore="${root}/secrets/jenkins.jks"
dname="CN=toolkit-jenkins,OU=citec,O=uni-bielefeld,L=Bielefeld,S=NRW,C=DE"

if [ ! -f "${keystore}" ] ; then
    echo "Keystore not found. Generate new self-signed keystore..."
    keytool -genkey                             \
            -keystore "${keystore}"             \
            -deststoretype pkcs12               \
            -alias toolkit                      \
            -keyalg RSA                         \
            -keysize 2048                       \
            -dname "${dname}"                   \
            -storepass keystore                 \
            -keypass keystore
fi

# execute the process
exec java -jar "${root}/jenkins.war" --httpsPort=8080 --httpPort=-1 --httpsKeyStore="${keystore}" --httpsKeyStorePassword=keystore
