#!/bin/bash original_args=("$@") SHORT=p:h OPTS=$(getopt -a --options $SHORT -- "$@") echo $OPTS eval set -- "$OPTS" while : do case "$1" in -p ) component="$2" shift 2 ;; -h | --help) "Runs the appropriate Processor component using the -p flag, all other args are passed through" exit 2 ;; --) shift; break ;; *) echo "Unexpected option: $1" ;; esac done printf "component is %s" "$component" if [ "$component" = "Environment" ]; then processor_class="ProcessorEnvironment.py" elif [ "$component" = "Deposition" ];then processor_class="ProcessorDeposition.py" elif [ "$component" = "Survey" ];then processor_class="ProcessorSurveys.py" elif [ "$component" = "Advisory" ];then processor_class="ProcessorAdvisory.py" elif [ "$component" = "Scraper" ];then processor_class="ProcessorScraper.py" elif [ "$component" = "Epidemiology" ];then processor_class="ProcessorEpidemiology.py" else printf "component '%s' not recognised" "$component" fi # directory containing all environment envs=/storage/app/EWS_prod/envs # directory containing all custom python packages bin=/storage/app/EWS_prod/code/ # provide custom python packages so they can be imported flagdir=${bin}/flagdir/ epimodel=${bin}/epimodel/ advisory=${bin}/advisory_builder/ met_processing=${bin}/met_extractor_v2/ met_processor=${bin}/environmental_suitability/ plotting=${bin}/plotting/ post_processing=${bin}/post_processing/ source_gen=${bin}/source_gen/ export PYTHONPATH=$PYTHONPATH:$flagdir:$epimodel:$advisory:$met_processing:$met_processor:$plotting:$source_gen:$post_processing # provide path to email credentials for logging export EMAIL_CRED=${envs}/credentials/Cred_gmail.json # activate conda environment of python modules so they can be imported #TODO: Move conda_env from bin to envs conda_env=${envs}/conda/py3EWS source /storage/app/miniconda3/bin/activate ${conda_env} # get path of this script (to point to files within the same git repo) proc_path="$( dirname "$(readlink -f "$0" )" )" # run the processor with all arguments processor=${proc_path}/../coordinator/${processor_class} printf "processor is %s\n\n" "$processor" python "${processor}" "${original_args[@]}" exit_code=$?; # deactivate conda environment source /storage/app/miniconda3/bin/deactivate ${conda_env} exit $exit_code;