#!/bin/sh NORMAL='' RED='' GREEN='' msglog() { case "${1}" in green) TEXT_COLOR="${GREEN}" ;; red) TEXT_COLOR="${RED}" ;; normal) TEXT_COLOR="${NORMAL}" ;; esac DATE=$(date '+%Y %b %d %H:%M:%S') echo ${DATE} ${TEXT_COLOR}${2}${NORMAL} } waiting_for_db() { while ! mysqlshow -h db -uroot -p${MYSQL_ROOT_PASSWORD} 2>&1 | grep "^| ${MYSQL_DATABASE}" > /dev/null 2>&1 ; do msglog red "Waiting for mysql database initilization..." sleep 5 done } updatephpini() { variable=$1 value=$2 file="/etc/php7/php.ini" if [ ! -z "${value}" ] ; then msglog green "Updating $variable to $value in $file" if grep "^${variable}" "${file}" > /dev/null 2<&1 ; then sed -i "s@^\(${variable}\s*=\).*@\1 ${value}@g" "${file}" else echo ${variable} = ${value} >> ${file} fi fi } updatephpini memory_limit ${PHP_MEMORY_LIMIT} updatephpini upload_max_filesize ${PHP_UPLOAD_MAX_FILESIZE} updatephpini post_max_size ${PHP_POST_MAX_SIZE} updatephpini date.timezone ${PHP_DATE_TIMEZONE} mkdir -p /var/www/glpi if [ ! -e "/etc/glpi/config_db.php" ] ; then waiting_for_db msglog red "Initialazing ${GLPI_TARBALL}..." cd /root cp -r /root/glpi_template/etc/. /etc/glpi/. cp -r /root/glpi_template/files/. /var/lib/glpi/. mysql --host=db --user=root --password=${MYSQL_ROOT_PASSWORD} << EOF use mysql; GRANT SELECT ON time_zone_name TO '${MYSQL_USER}'@'%'; EOF cd /var/www/glpi php bin/console db:install --config-dir=${GLPI_CONFIG_DIR} -L fr_FR -H db -d ${MYSQL_DATABASE} -u ${MYSQL_USER} -p ${MYSQL_PASSWORD} -n php bin/console glpi:plugin:install -u glpi fusioninventory -n php bin/console glpi:plugin:activate fusioninventory -n rm install/install.php chown -R apache:apache /var/www/glpi /etc/glpi /var/lib/glpi /var/log/glpi patch -Np0 -i /root/glpi_ticket.class.php.patch echo "${GLPI_VERSION}" > /etc/glpi/glpi_actual_version echo "${FUSIONINVENTORY_VERSION}" > /etc/glpi/fusioninventory_actual_version echo "${FIELDS_VERSION}" > /etc/glpi/fields_actual_version echo "${DATAINJECTION_VERSION}" > /etc/glpi/datainjection_version msglog green "Initialazing complete..." else msglog green "GLPI is already initialized" GLPI_ACTUAL_VERSION=$(cat /etc/glpi/glpi_actual_version) FUSIONINVENTORY_ACTUAL_VERSION=$(cat /etc/glpi/fusioninventory_actual_version) FIELDS_ACTUAL_VERSION=$(cat /etc/glpi/fields_actual_version) DATAINJECTION_ACTUAL_VERSION=$(cat /etc/glpi/datainjection_version) if [ "${GLPI_ACTUAL_VERSION}" = "${GLPI_VERSION}" -a "${FUSIONINVENTORY_ACTUAL_VERSION}" = "${FUSIONINVENTORY_VERSION}" -a "${FIELDS_ACTUAL_VERSION}" = "${FIELDS_VERSION}" -a "${DATAINJECTION_ACTUAL_VERSION}" = "${DATAINJECTION_VERSION}" ] ; then msglog green "GLPI already up2date" exit fi msglog red "Updating GLPI from ${GLPI_ACTUAL_VERSION} to ${GLPI_VERSION}" waiting_for_db cd /var/www/glpi php bin/console glpi:maintenance:enable -n php bin/console glpi:plugin:deactivate --all -n rm /var/www/glpi/install/install.php php bin/console db:update --config-dir=${GLPI_CONFIG_DIR} -n && \ ( echo "${GLPI_VERSION}" > /etc/glpi/glpi_actual_version ; \ echo "${FUSIONINVENTORY_VERSION}" > /etc/glpi/fusioninventory_actual_version ; \ echo "${FIELDS_VERSION}" > /etc/glpi/fields_actual_version ; \ echo "${DATAINJECTION_VERSION}" > /etc/glpi/datainjection_actual_version ) php bin/console glpi:maintenance:disable -n chown -R apache:apache /var/www/glpi /etc/glpi /var/lib/glpi /var/log/glpi fi