PAL: Process local xml file
[csit.git] / resources / tools / presentation / run_report_local.sh
diff --git a/resources/tools/presentation/run_report_local.sh b/resources/tools/presentation/run_report_local.sh
new file mode 100755 (executable)
index 0000000..6074f1d
--- /dev/null
@@ -0,0 +1,126 @@
+#!/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}