MonarcAppFO/scripts/update-all.sh

124 lines
2.9 KiB
Bash
Raw Normal View History

#!/usr/bin/env bash
2019-11-13 10:55:30 +01:00
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m' # No Color
bypass=0
forceClearCache=0
isDevEnv=0
while getopts "hbcd" option
do
case $option in
h)
echo -e "Update or install all Monarc modules, frontend views and migrate database."
echo -e "\t-b\tbypass migrate database"
echo -e "\t-c\tforce clear cache"
echo -e "\t-h\tdisplay this message"
exit 1
;;
b)
bypass=1
echo "Migrate database don't execute !!!"
;;
c)
forceClearCache=1
;;
d)
isDevEnv=1
esac
done
2016-04-27 16:59:05 +02:00
checkout_to_latest_tag() {
if [ -d $1 ]; then
pushd $1
git fetch --tags
tag=$(git describe --tags `git rev-list --tags --max-count=1`)
git checkout $tag -b $tag
git pull origin $tag
popd
fi
2016-04-27 16:59:05 +02:00
}
2017-03-17 11:45:46 +01:00
migrate_module() {
if [[ -d $1 ]]; then
php ./vendor/robmorgan/phinx/bin/phinx migrate -c ./$1/migrations/phinx.php
fi
2017-03-17 11:45:46 +01:00
}
if [[ ! -f "config/autoload/local.php" && $bypass -eq 0 ]]; then
echo "Configure Monarc (config/autoload/local.php)"
exit 1
fi
2019-11-13 10:44:35 +01:00
git pull
2016-04-27 16:59:05 +02:00
2019-06-11 10:47:32 +02:00
if [ $? != 0 ]; then
echo "A problem occurred while retrieving remote files from repository."
exit 1
2019-06-11 10:47:32 +02:00
fi
2020-02-24 13:29:30 +01:00
./scripts/check_composer.sh
if [[ $? -eq 1 ]]; then
exit 1
fi
if [[ $isDevEnv -eq 0 ]]; then
composer ins -o --no-dev
else
composer ins
fi
pathCore="module/Monarc/Core"
pathFO="module/Monarc/FrontOffice"
if [[ $bypass -eq 0 ]]; then
if [ -e data/backup/credentialsmysql.cnf ]; then
backupdir=data/backup/$(date +"%Y%m%d_%H%M%S")
mkdir $backupdir
echo -e "${GREEN}Dumping database to $backupdir...${NC}"
mysqldump --defaults-file=data/backup/credentialsmysql.cnf --databases monarc_common > $backupdir/dump-common.sql
mysqldump --defaults-file=data/backup/credentialsmysql.cnf --databases monarc_cli > $backupdir/dump-cli.sql
else
echo -e "${GREEN}Database backup not configured. Skipping.${NC}"
fi
migrate_module $pathCore
migrate_module $pathFO
2016-08-25 15:42:05 +02:00
fi
2019-11-14 08:08:49 +01:00
if [[ -d node_modules && -d node_modules/ng_anr ]]; then
if [[ -d node_modules/ng_anr/.git ]]; then
checkout_to_latest_tag node_modules/ng_client
checkout_to_latest_tag node_modules/ng_anr
else
npm update
fi
2019-11-14 08:08:49 +01:00
fi
cd node_modules/ng_client
npm ci
cd ../..
2016-08-25 15:42:05 +02:00
2016-04-27 16:59:05 +02:00
./scripts/link_modules_resources.sh
./scripts/compile_translations.sh
if [[ $forceClearCache -eq 1 ]]; then
# Clear Laminas cache
php ./public/index.php orm:clear-cache:metadata
php ./public/index.php orm:clear-cache:query
php ./public/index.php orm:clear-cache:result
# Clear Laminas cache
touch ./data/cache/upgrade && chmod 777 ./data/cache/upgrade
fi
2016-12-16 16:31:24 +01:00
if [[ $forceClearCache -eq 0 && $bypass -eq 0 ]]; then
# Clear Laminas cache
touch ./data/cache/upgrade && chmod 777 ./data/cache/upgrade
fi
2019-11-13 10:55:30 +01:00
./scripts/update_config_variables.sh
2019-11-13 10:55:30 +01:00
exit 0