#!/bin/bash # set -x usage() { cat <<EOF usage: run_report_local [OPTION] Options: -h; --help Display this help and exit. -f; --file Input XML file to be processed. -d; --directory Directory with input XML files to be processed. -r; --release Release string (optional). -w; --week Release week (optional). -i; --no-dependencies Do not install dependencies. -l; --install-latex Instal Latex. EOF } filename="" directoryname="" release="master" week="1" cfg_install_dependencies=1 cfg_install_latex=0 while [ "$1" != "" ]; do case $1 in -f | --file ) shift filename=$1 ;; -d | --directory ) shift directoryname=$1 ;; -r | --release ) shift release=$1 ;; -w | --week ) shift week=$1 ;; -i | --no-dependencies ) cfg_install_dependencies=0 ;; -l | --install-latex ) cfg_install_latex=1 ;; -h | --help ) usage exit 1 ;; * ) usage exit 1 esac shift done echo "Parameters:" echo " Input file: " ${filename} echo " Input directory: " ${directoryname} echo " Report release: " ${release} echo " Report week: " ${week} echo " Install dependencies: " ${cfg_install_dependencies} echo " Install Latex: " ${cfg_install_latex} if [[ $filename == "" && $directoryname == "" ]]; then echo "ERROR: The input directory or file is required." usage exit 1 fi # set default values in config array typeset -A CFG typeset -A DIR DIR[WORKING]=_tmp # Install system dependencies if [[ ${cfg_install_dependencies} -eq 1 ]] ; then sudo apt-get -y update sudo apt-get -y install libxml2 libxml2-dev libxslt-dev build-essential \ zlib1g-dev unzip fi if [[ ${cfg_install_latex} -eq 1 ]] ; then sudo apt-get -y install xvfb texlive-latex-recommended \ texlive-fonts-recommended texlive-fonts-extra texlive-latex-extra latexmk wkhtmltopdf inkscape sudo sed -i.bak 's/^\(main_memory\s=\s\).*/\110000000/' /usr/share/texlive/texmf-dist/web2c/texmf.cnf fi # Create working directories mkdir ${DIR[WORKING]} # Create virtual environment virtualenv -p $(which python3) ${DIR[WORKING]}/env source ${DIR[WORKING]}/env/bin/activate # Install python dependencies: pip3 install -r requirements.txt export PYTHONPATH=`pwd`:`pwd`/../../../:`pwd`/../../libraries/python # Show help so you know the meaning of all parameters python pal.py --help if [[ ${filename} != "" ]]; then python pal.py \ --specification specification_local.yaml \ --release ${release} \ --week ${week} \ --logging INFO \ --force \ --input-file ${filename} fi if [[ ${directoryname} != "" ]]; then python pal.py \ --specification specification_local.yaml \ --release ${release} \ --week ${week} \ --logging INFO \ --force \ --input-directory ${directoryname} fi RETURN_STATUS=$(echo $?) exit ${RETURN_STATUS}