docker-GLPI/alpine/web-builder/glpi_init.sh

96 lines
3.6 KiB
Bash
Raw Normal View History

2020-08-03 21:32:39 +02:00
#!/bin/sh
NORMAL=''
RED=''
GREEN=''
2020-08-03 21:32:39 +02:00
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}
2020-08-06 18:26:12 +02:00
mkdir -p /var/www/glpi
if [ ! -e "/etc/glpi/config_db.php" ] ; then
waiting_for_db
msglog red "Initialazing ${GLPI_TARBALL}..."
2020-08-03 21:32:39 +02:00
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
2020-08-06 18:26:12 +02:00
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
2020-08-06 18:26:12 +02:00
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..."
2020-08-03 21:32:39 +02:00
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
2020-08-06 18:26:12 +02:00
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
2020-08-06 18:26:12 +02:00
chown -R apache:apache /var/www/glpi /etc/glpi /var/lib/glpi /var/log/glpi
2020-08-03 21:32:39 +02:00
fi