docker-GLPI/glpi_init.sh

60 lines
2.2 KiB
Bash

#!/bin/sh
GLPI_TARBALL="/root/glpi-9.5.1.tgz"
FUSION_TARBALL="/root/fusioninventory-9.5.0+1.0.tar.bz2"
init_db() {
while ! mysqlshow -h db -uroot -p${MYSQL_ROOT_PASSWORD} | grep "^| ${MYSQL_DATABASE}" > /dev/null 2>&1 ; do
echo "Waiting for mysql database initilization..."
sleep 5
done
echo "Starting glpi configuration..."
}
if [ -z $(ls -A /var/www/html) ] ; then
init_db
echo "Initilazing ${GLPI_TARBALL}"
cd /root
tar xf ${GLPI_TARBALL}
cp -r /root/glpi/config/. /etc/glpi/.
cp -r /root/glpi/files/. /var/lib/glpi/.
rm -r /root/glpi/config /root/glpi/files
cp -r /root/glpi/. /var/www/html/.
cd /var/www/html/plugins
tar xf ${FUSION_TARBALL}
rm -r /root/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/html
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 www-data:www-data /var/www/html /etc/glpi /var/lib/glpi /var/log/glpi
else
echo "GLPI is already initialized"
cd /var/www/html
GLPI_ACTUAL_VERSION=$(awk -F", '" '/^define\(.GLPI_VERSION/ { print $2 }' inc/define.php | sed 's/\([0-9\.]*\).*/\1/')
FUSIONINVENTORY_ACTUAL_VERSION=$(awk -F', "' '/^define \(.PLUGIN_FUSIONINVENTORY_VERSION/ { print $2 }' plugins/fusioninventory/setup.php | sed 's/\([0-9\.+]*\).*/\1/')
if [ "${GLPI_ACTUAL_VERSION}" = "${GLPI_VERSION}" -a "${FUSIONINVENTORY_ACTUAL_VERSION}" = "${FUSIONINVENTORY_VERSION}" ] ; then
echo GLPI already up2date
exit
fi
init_db
php bin/console glpi:maintenance:enable -n
php bin/console glpi:plugin:deactivate fusioninventory -n
cd /root
tar xf ${GLPI_TARBALL}
rm -r glpi/config glpi/files /var/www/html
mv glpi /var/www/html
cd /var/www/html/plugins
tar xf ${FUSION_TARBALL}
rm /var/www/html/install/install.php
cd /var/www/html
php bin/console db:update --config-dir=${GLPI_CONFIG_DIR} -n
php bin/console glpi:maintenance:disable -n
chown -R www-data:www-data /var/www/html /etc/glpi /var/lib/glpi /var/log/glpi
fi