Files
fdn2/build
T
Riccardo Di Dato 4ddbe4ffc2 Creato sistema di deploy (INPROGRESS)
Importate librerie fondamentali:
Logger (UNTESTED)
System (UNTESTED)
Dao (INCOMPLETE)
2015-12-22 22:08:30 +01:00

146 lines
3.1 KiB
Python
Executable File

#!/bin/bash
###########
# Lo script utilizza tre possibili environment: Produzione, Test e Locale
# Permette cinque operazioni su database: Drop and rebuild all, Drop and rebuild all content, Drop and rebuild config, Add missing tables e Skip
###########
source "buildLibs"
OPTION_HELP=false # -h
ENVIRONMENT_PRODUCTION=false # -p
ENVIRONMENT_TEST=false # -t
ENVIRONMENT_LOCAL=false # -l
DATABASE_DROP_ALL=false # -D
DATABASE_DROP_CONTENT=false # -C
DATABASE_DROP_CONFIG=false # -c
DATABASE_FIX=false # -f
DATABASE_SKIP=false # -s
DEFAULT_CONFIG_FILE=".build.config"
DEFAULT_DATABASE_FILE=".build_db.config"
USE_CONFIG_FILE="$DEFAULT_CONFIG_FILE"
USE_DATABASE_FILE="$DEFAULT_DATABASE_FILE"
while getopts ":hptlDCcfs" optname
do
case "$optname" in
"h")
OPTION_HELP=true
;;
"p")
ENVIRONMENT_PRODUCTION=true
;;
"t")
ENVIRONMENT_TEST=true
;;
"l")
ENVIRONMENT_LOCAL=true
;;
"D")
DATABASE_DROP_ALL=true
;;
"C")
DATABASE_DROP_CONTENT=true
;;
"c")
DATABASE_DROP_CONFIG=true
;;
"f")
DATABASE_FIX=true
;;
"s")
DATABASE_SKIP=true
;;
"?")
echo "Invalid option -$OPTARG"
;;
":")
echo "No argument value for option $OPTARG"
;;
*)
# Should not occur
echo "Unknown error while processing options"
;;
esac
done
if [ "$ENVIRONMENT_PRODUCTION" = false ] && [ "$ENVIRONMENT_TEST" = false ] && [ "$ENVIRONMENT_LOCAL" = false ]; then
OPTION_HELP=true
fi
if [ $OPTION_HELP = true ]; then
help
exit 0
fi
shift $(($OPTIND - 1))
if [ "$1" != "" ]; then
USE_CONFIG_FILE="$1"
fi
if [ -f "$USE_CONFIG_FILE" ]; then
source "$USE_CONFIG_FILE"
else
printf "Impossibile Leggere il file di configurazione '$USE_CONFIG_FILE')\n"
exit 1
fi
if [ -f "$USE_DATABASE_FILE" ]; then
source "$USE_DATABASE_FILE"
else
printf "Impossibile Leggere il file di configurazione del database '$USE_DATABASE_FILE')\n"
exit 1
fi
if [ ! -w "$APACHE2_DOCUMENTROOT" ] || [ ! -w "$SYSTEM_PRIVATE" ] || [ ! -w "$SYSTEM_STORAGE" ] || [ ! -w "$SYSTEM_LOG_PATH" ]; then
printf "Permessi insufficienti per eseguire lo script (sudo?)\n"
if [ ! -w "$APACHE2_DOCUMENTROOT" ]; then
printf "Impossibile scrivere in '$APACHE2_DOCUMENTROOT'\n"
fi
if [ ! -w "$SYSTEM_PRIVATE" ]; then
printf "Impossibile scrivere in '$SYSTEM_PRIVATE'\n"
fi
if [ ! -w "$SYSTEM_STORAGE" ]; then
printf "Impossibile scrivere in '$SYSTEM_STORAGE'\n"
fi
if [ ! -w "$SYSTEM_LOG_PATH" ]; then
printf "Impossibile scrivere in '$SYSTEM_LOG_PATH'\n"
fi
exit 1
fi
printf "Asdynamics Application Build/Deploy Script\n"
if [ -f .logo ]; then
cat .logo
fi
if [ "$ENVIRONMENT_PRODUCTION" = true ]; then
deploy_production_env
elif [ "$ENVIRONMENT_TEST" = true ]; then
deploy_test_env
elif [ "$ENVIRONMENT_LOCAL" = true ]; then
deploy_local_env
fi
if [ "$DATABASE_DROP_ALL" = true ]; then
database_rebuild_content
database_rebuild_config
elif [ "$DATABASE_DROP_CONTENT" = true ]; then
database_rebuild_content
elif [ "$DATABASE_DROP_CONFIG" = true ]; then
database_rebuild_config
elif [ "$DATABASE_FIX" = true ]; then
database_add_missing
elif [ "$DATABASE_SKIP" = false ]; then
database_add_missing
fi