From 61ee53af372b628b36db380933a1e9d21fbfdb8d Mon Sep 17 00:00:00 2001
From: Reiner Jung <reiner.jung@email.uni-kiel.de>
Date: Mon, 26 Jun 2023 16:39:53 +0200
Subject: [PATCH] Updated scripts and made setup more generic.

---
 models/config.template                        | 37 +++++++++++++++++++
 models/find-project.sh                        | 21 +++++++++++
 models/mitgcm/combine-models.sh               |  6 +++
 models/mitgcm/compare-models.sh               | 30 ++++-----------
 models/mitgcm/compute-statistics.sh           |  6 +++
 models/mitgcm/config.template                 | 37 -------------------
 .../mitgcm/prepare-models-for-inspection.sh   | 18 +++++++--
 models/mitgcm/run-architecture-analysis.sh    |  6 +++
 models/mitgcm/run-dynamic-analysis.sh         |  6 +++
 models/mitgcm/run-dynamic-observation.sh      |  6 +++
 models/mitgcm/run-static-analysis.sh          |  6 +++
 models/mitgcm/run-static-code-processing.sh   |  6 +++
 models/uvic/combine-models.sh                 |  6 +++
 models/uvic/compare-models.sh                 | 28 +++-----------
 models/uvic/compute-statistics.sh             |  6 +++
 models/uvic/config.template                   | 37 -------------------
 models/uvic/prepare-models-for-inspection.sh  | 18 +++++++--
 models/uvic/run-architecture-analysis.sh      |  6 +++
 models/uvic/run-dynamic-analysis.sh           |  6 +++
 models/uvic/run-dynamic-observation.sh        |  6 +++
 models/uvic/run-static-analysis.sh            |  6 +++
 models/uvic/run-static-code-processing.sh     |  6 +++
 22 files changed, 183 insertions(+), 127 deletions(-)
 create mode 100644 models/config.template
 create mode 100755 models/find-project.sh

diff --git a/models/config.template b/models/config.template
new file mode 100644
index 0000000..0270ad2
--- /dev/null
+++ b/models/config.template
@@ -0,0 +1,37 @@
+# Main replication directory
+export REPLICATION_DIR="/home/reiner/temp/experiment/experiments"
+
+# Library path including Kieker libraries
+export KIEKER_LIBRARY_PATH="${REPLICATION_DIR}/../install/km/lib/"
+
+# Location for dynamic and static data
+export DATA_PATH="/home/reiner/Projects/OceanDSL/architecture-recovery-and-optimization-data"
+
+# List of external functions
+export EXTERNAL_FUNCTIONS_MAP="${REPLICATION_DIR}/builtin-functions.csv"
+export STATIC_AUX_MODULE_MAP="${REPLICATION_DIR}/uvic-aux-map-file.csv"
+
+export TOOL_DIR="/home/reiner/temp/experiment/install"
+
+# Data directory for results from the optimization
+OPTIMIZATION_DATA="/home/reiner/Projects/OceanDSL/restructuring-results"
+
+DAR="${TOOL_DIR}/oceandsl-tools/bin/dar"
+SAR="${TOOL_DIR}/oceandsl-tools/bin/sar"
+MAA="${TOOL_DIR}/oceandsl-tools/bin/maa"
+MOP="${TOOL_DIR}/oceandsl-tools/bin/mop"
+MVIS="${TOOL_DIR}/oceandsl-tools/bin/mvis"
+RELABEL="${TOOL_DIR}/oceandsl-tools/bin/relabel"
+FXCA="${TOOL_DIR}/oceandsl-tools/bin/fxca"
+FXTRAN="${TOOL_DIR}/fxtran"
+RESTRUCTURING="${TOOL_DIR}/oceandsl-tools/bin/restructuring"
+DELTA="${TOOL_DIR}/oceandsl-tools/bin/delta"
+
+# collector tool
+COLLECTOR="${TOOL_DIR}/collector/bin/collector"
+
+# addr2line
+ADDR2LINE=`which addr2line`
+
+# Hostname where the dynamic analysis was executed
+HOST=glasgow
diff --git a/models/find-project.sh b/models/find-project.sh
new file mode 100755
index 0000000..9416ae1
--- /dev/null
+++ b/models/find-project.sh
@@ -0,0 +1,21 @@
+#!/bin/bash
+
+export BASE_DIR=$(cd "$(dirname "$0")"; pwd)
+
+. "${BASE_DIR}/../common-functions.rc"
+
+if [ -f "$BASE_DIR/config" ] ; then
+        . $BASE_DIR/config
+else
+        echo "Config file not found."
+fi
+
+for I in `find "${OPTIMIZATION_DATA}" -name "type-model.xmi"` ; do
+	DIR=`dirname $I`
+	if [ ! -f "${DIR}/.project" ] ; then
+		basename $DIR
+	fi
+done
+
+# end
+
diff --git a/models/mitgcm/combine-models.sh b/models/mitgcm/combine-models.sh
index 7774f61..6016623 100755
--- a/models/mitgcm/combine-models.sh
+++ b/models/mitgcm/combine-models.sh
@@ -11,6 +11,12 @@ else
         exit 1
 fi
 
+if [ -f "${BASE_DIR}/../config" ] ; then
+        . "${BASE_DIR}/../config"
+else
+        echo "Main config file not found."
+        exit 1
+fi
 if [ -f "$BASE_DIR/config" ] ; then
         . $BASE_DIR/config
 else
diff --git a/models/mitgcm/compare-models.sh b/models/mitgcm/compare-models.sh
index 16c4afb..5003869 100755
--- a/models/mitgcm/compare-models.sh
+++ b/models/mitgcm/compare-models.sh
@@ -4,6 +4,12 @@ export BASE_DIR=$(cd "$(dirname "$0")"; pwd)
 
 . "${BASE_DIR}/../../common-functions.rc"
 
+if [ -f "${BASE_DIR}/../config" ] ; then
+        . "${BASE_DIR}/../config"
+else
+        echo "Main config file not found."
+        exit 1
+fi
 if [ -f "$BASE_DIR/config" ] ; then
         . $BASE_DIR/config
 else
@@ -18,7 +24,7 @@ checkDirectory "Result directory" "${OPTIMIZATION_DATA}"
 
 # main
 for JOB_DIRECTORY in `find "${OPTIMIZATION_DATA}/jss"* -name '*mitgcm*job'` ; do
- 	BASENAME=`basename "${JOB_DIRECTORY}"`
+	BASENAME=`basename "${JOB_DIRECTORY}"`
 	information "----------------------------------------"
 	information $BASENAME
 	information "----------------------------------------"
@@ -27,28 +33,6 @@ for JOB_DIRECTORY in `find "${OPTIMIZATION_DATA}/jss"* -name '*mitgcm*job'` ; do
 
 	checkDirectory "job directory" "${JOB_DIRECTORY}"
 
-	export ORIGINAL_ARCHIVE="${JOB_DIRECTORY}/optimized-models.tar.xz"
-	export OPTIMIZED_ARCHIVE="${JOB_DIRECTORY}/original-model.tar.xz"
-	export COMBINED_ARCHIVE="${JOB_DIRECTORY}/kieker-repositories.tar.xz"
-
-	cd "${JOB_DIRECTORY}"
-
-	if [ -f "${ORIGINAL_ARCHIVE}" ] && [ -f "${OPTIMIZED_ARCHIVE}" ] ; then
-		tar -xpf "${ORIGINAL_ARCHIVE}"
-		tar -xpf "${OPTIMIZED_ARCHIVE}"
-	elif [ -f "${COMBINED_ARCHIVE}" ] ; then
-		rm -rf "${JOB_DIRECTORY}/original-model"
-		for J in "${JOB_DIRECTORY}/optimized-"* ; do
-			if [ -d "$J" ] ; then
-				rm -rf "$J"
-			fi
-		done
-		tar -xpf "${COMBINED_ARCHIVE}"
-		mv "${JOB_DIRECTORY}/kieker-repositories/"* .
-	else
-		echo "No data."
-	fi
-
 	ORIGINAL="${JOB_DIRECTORY}/original-model"
 
 	if [ -d "${ORIGINAL}" ] ; then
diff --git a/models/mitgcm/compute-statistics.sh b/models/mitgcm/compute-statistics.sh
index 2ab33ed..47cba7f 100755
--- a/models/mitgcm/compute-statistics.sh
+++ b/models/mitgcm/compute-statistics.sh
@@ -11,6 +11,12 @@ else
         exit 1
 fi
 
+if [ -f "${BASE_DIR}/../config" ] ; then
+        . "${BASE_DIR}/../config"
+else
+        echo "Main config file not found."
+        exit 1
+fi
 if [ -f "$BASE_DIR/config" ] ; then
         . $BASE_DIR/config
 else
diff --git a/models/mitgcm/config.template b/models/mitgcm/config.template
index fe0364a..6b136e1 100644
--- a/models/mitgcm/config.template
+++ b/models/mitgcm/config.template
@@ -1,38 +1,3 @@
-# Main replication directory
-export REPLICATION_DIR="/home/reiner/temp/experiment/experiments"
-
-# Library path including Kieker libraries
-export KIEKER_LIBRARY_PATH="${REPLICATION_DIR}/../install/km/lib/"
-
-# Location for dynamic and static data
-export DATA_PATH="/home/reiner/Projects/OceanDSL/architecture-recovery-and-optimization-data"
-
-# List of external functions
-export EXTERNAL_FUNCTIONS_MAP="${REPLICATION_DIR}/builtin-functions.csv"
-export STATIC_AUX_MODULE_MAP="${REPLICATION_DIR}/mitgcm-aux-map-file.csv"
-
-export TOOL_DIR="/home/reiner/temp/experiment/install"
-
-# Data directory for results from the optimization
-OPTIMIZATION_DATA="/home/reiner/jss-results"
-
-DAR="${TOOL_DIR}/oceandsl-tools/bin/dar"
-SAR="${TOOL_DIR}/oceandsl-tools/bin/sar"
-MAA="${TOOL_DIR}/oceandsl-tools/bin/maa"
-MOP="${TOOL_DIR}/oceandsl-tools/bin/mop"
-MVIS="${TOOL_DIR}/oceandsl-tools/bin/mvis"
-RELABEL="${TOOL_DIR}/oceandsl-tools/bin/relabel"
-FXCA="${TOOL_DIR}/oceandsl-tools/bin/fxca"
-FXTRAN="${TOOL_DIR}/fxtran"
-RESTRUCTURING="${TOOL_DIR}/oceandsl-tools/bin/restructuring"
-DELTA="${TOOL_DIR}/oceandsl-tools/bin/delta"
-
-# collector tool
-COLLECTOR="${TOOL_DIR}/collector/bin/collector"
-
-# addr2line
-ADDR2LINE=`which addr2line`
-
 # Repository prefix for the mitgcm model variants
 REPOSITORY_DIR="${REPLICATION_DIR}/MITgcm"
 # Compile configurtion for kieker
@@ -44,5 +9,3 @@ PROCESSED_CODE_PATH="${REPOSITORY_DIR}/verification/${EXPERIMENT_NAME}/build"
 # Path to the executable
 EXECUTABLE="${REPOSITORY_DIR}/verification/${EXPERIMENT_NAME}/build/mitgcmuv"
 
-# Hostname where the dynamic analysis was executed
-HOST=glasgow
diff --git a/models/mitgcm/prepare-models-for-inspection.sh b/models/mitgcm/prepare-models-for-inspection.sh
index 813ba3f..f46db08 100755
--- a/models/mitgcm/prepare-models-for-inspection.sh
+++ b/models/mitgcm/prepare-models-for-inspection.sh
@@ -4,6 +4,12 @@ export BASE_DIR=$(cd "$(dirname "$0")"; pwd)
 
 . "${BASE_DIR}/../../common-functions.rc"
 
+if [ -f "${BASE_DIR}/../config" ] ; then
+        . "${BASE_DIR}/../config"
+else
+        echo "Main config file not found."
+        exit 1
+fi
 if [ -f "$BASE_DIR/config" ] ; then
         . $BASE_DIR/config
 else
@@ -56,12 +62,16 @@ for JOB_DIRECTORY in `find "${OPTIMIZATION_DATA}/jss"* -name '*mitgcm*job'` ; do
 
 			echo "$ORIGINAL -> $OPTIMIZED in $STEPS"
 
-			cat "${BASE_DIR}/template.project" | sed "s/NAME/${MODEL_ID}-$OPTIMIZED/g" > "$OPTIMIZED/.project"
+			if [ -d "$OPTIMIZED" ] ; then
+				cat "${BASE_DIR}/template.project" | sed "s/NAME/${MODEL_ID}-$OPTIMIZED/g" > "$OPTIMIZED/.project"
 
-			rm -rf "merge-${OPTIMIZED}"
-			mkdir "merge-${OPTIMIZED}"
+				rm -rf "merge-${OPTIMIZED}"
+				mkdir "merge-${OPTIMIZED}"
 
-			"${MOP}" -e "${MODEL_ID}-${OPTIMIZED}-merged" -i "original-model" "${OPTIMIZED}" -o "merge-${OPTIMIZED}" -s all merge >> "${MOP_LOG}" 2>&1
+				"${MOP}" -e "${MODEL_ID}-${OPTIMIZED}-merged" -i "original-model" "${OPTIMIZED}" -o "merge-${OPTIMIZED}" -s all merge >> "${MOP_LOG}" 2>&1
+			else
+				warning "Missing $OPTIMIZED model"
+			fi
 		done
 	else
 		error "Missing MED output for job $BASENAME"
diff --git a/models/mitgcm/run-architecture-analysis.sh b/models/mitgcm/run-architecture-analysis.sh
index 56d3653..c6b8635 100755
--- a/models/mitgcm/run-architecture-analysis.sh
+++ b/models/mitgcm/run-architecture-analysis.sh
@@ -11,6 +11,12 @@ else
         exit 1
 fi
 
+if [ -f "${BASE_DIR}/../config" ] ; then
+        . "${BASE_DIR}/../config"
+else
+        echo "Main config file not found."
+        exit 1
+fi
 if [ -f "$BASE_DIR/config" ] ; then
         . $BASE_DIR/config
 else
diff --git a/models/mitgcm/run-dynamic-analysis.sh b/models/mitgcm/run-dynamic-analysis.sh
index f0dc1ce..e29d0f0 100755
--- a/models/mitgcm/run-dynamic-analysis.sh
+++ b/models/mitgcm/run-dynamic-analysis.sh
@@ -11,6 +11,12 @@ else
         exit 1
 fi
 
+if [ -f "${BASE_DIR}/../config" ] ; then
+        . "${BASE_DIR}/../config"
+else
+        echo "Main config file not found."
+        exit 1
+fi
 if [ -f "${BASE_DIR}/config" ] ; then
         . "${BASE_DIR}/config"
 else
diff --git a/models/mitgcm/run-dynamic-observation.sh b/models/mitgcm/run-dynamic-observation.sh
index 50ffcdd..c3b09e9 100755
--- a/models/mitgcm/run-dynamic-observation.sh
+++ b/models/mitgcm/run-dynamic-observation.sh
@@ -11,6 +11,12 @@ else
 	exit 1
 fi
 
+if [ -f "${BASE_DIR}/../config" ] ; then
+        . "${BASE_DIR}/../config"
+else
+        echo "Main config file not found."
+        exit 1
+fi
 if [ -f "$BASE_DIR/config" ] ; then
         . "${BASE_DIR}/config"
 else
diff --git a/models/mitgcm/run-static-analysis.sh b/models/mitgcm/run-static-analysis.sh
index 8dfa290..f46c3c2 100755
--- a/models/mitgcm/run-static-analysis.sh
+++ b/models/mitgcm/run-static-analysis.sh
@@ -13,6 +13,12 @@ fi
 
 checkMode $2
 
+if [ -f "${BASE_DIR}/../config" ] ; then
+        . "${BASE_DIR}/../config"
+else
+        echo "Main config file not found."
+        exit 1
+fi
 if [ -f "${BASE_DIR}/config" ] ; then
         . "${BASE_DIR}/config"
 else
diff --git a/models/mitgcm/run-static-code-processing.sh b/models/mitgcm/run-static-code-processing.sh
index 221311d..43fc12e 100755
--- a/models/mitgcm/run-static-code-processing.sh
+++ b/models/mitgcm/run-static-code-processing.sh
@@ -11,6 +11,12 @@ else
 	exit 1
 fi
 
+if [ -f "${BASE_DIR}/../config" ] ; then
+        . "${BASE_DIR}/../config"
+else
+        echo "Main config file not found."
+        exit 1
+fi
 if [ -f "$BASE_DIR/config" ] ; then
         . "${BASE_DIR}/config"
 else
diff --git a/models/uvic/combine-models.sh b/models/uvic/combine-models.sh
index cebc735..fd13df5 100755
--- a/models/uvic/combine-models.sh
+++ b/models/uvic/combine-models.sh
@@ -11,6 +11,12 @@ else
         exit 1
 fi
 
+if [ -f "${BASE_DIR}/../config" ] ; then
+        . "${BASE_DIR}/../config"
+else
+        echo "Main config file not found."
+        exit 1
+fi
 if [ -f "$BASE_DIR/config" ] ; then
         . $BASE_DIR/config
 else
diff --git a/models/uvic/compare-models.sh b/models/uvic/compare-models.sh
index 1f64785..b0d675e 100755
--- a/models/uvic/compare-models.sh
+++ b/models/uvic/compare-models.sh
@@ -4,6 +4,12 @@ export BASE_DIR=$(cd "$(dirname "$0")"; pwd)
 
 . "${BASE_DIR}/../../common-functions.rc"
 
+if [ -f "${BASE_DIR}/../config" ] ; then
+        . "${BASE_DIR}/../config"
+else
+        echo "Main config file not found."
+        exit 1
+fi
 if [ -f "$BASE_DIR/config" ] ; then
         . $BASE_DIR/config
 else
@@ -27,28 +33,6 @@ for JOB_DIRECTORY in `find "${OPTIMIZATION_DATA}/jss"* -name '*uvic*job'` ; do
 
 	checkDirectory "job directory" "${JOB_DIRECTORY}"
 
-	export ORIGINAL_ARCHIVE="${JOB_DIRECTORY}/optimized-models.tar.xz"
-	export OPTIMIZED_ARCHIVE="${JOB_DIRECTORY}/original-model.tar.xz"
-	export COMBINED_ARCHIVE="${JOB_DIRECTORY}/kieker-repositories.tar.xz"
-
-	cd "${JOB_DIRECTORY}"
-
-	if [ -f "${ORIGINAL_ARCHIVE}" ] && [ -f "${OPTIMIZED_ARCHIVE}" ] ; then
-		tar -xpf "${ORIGINAL_ARCHIVE}"
-		tar -xpf "${OPTIMIZED_ARCHIVE}"
-	elif [ -f "${COMBINED_ARCHIVE}" ] ; then
-		rm -rf "${JOB_DIRECTORY}/original-model"
-		for J in "${JOB_DIRECTORY}/optimized-"* ; do
-			if [ -d "$J" ] ; then
-				rm -rf "$J"
-			fi
-		done
-		tar -xpf "${COMBINED_ARCHIVE}"
-		mv "${JOB_DIRECTORY}/kieker-repositories/"* .
-	else
-		echo "No data."
-	fi
-
 	ORIGINAL="${JOB_DIRECTORY}/original-model"
 
 	if [ -d "${ORIGINAL}" ] ; then
diff --git a/models/uvic/compute-statistics.sh b/models/uvic/compute-statistics.sh
index adb0581..42320ea 100755
--- a/models/uvic/compute-statistics.sh
+++ b/models/uvic/compute-statistics.sh
@@ -11,6 +11,12 @@ else
         exit 1
 fi
 
+if [ -f "${BASE_DIR}/../config" ] ; then
+        . "${BASE_DIR}/../config"
+else
+        echo "Main config file not found."
+        exit 1
+fi
 if [ -f "$BASE_DIR/config" ] ; then
         . $BASE_DIR/config
 else
diff --git a/models/uvic/config.template b/models/uvic/config.template
index 5fe8dd5..c7491e3 100644
--- a/models/uvic/config.template
+++ b/models/uvic/config.template
@@ -1,38 +1,3 @@
-# Main replication directory
-export REPLICATION_DIR="/home/reiner/temp/experiment/experiments"
-
-# Library path including Kieker libraries
-export KIEKER_LIBRARY_PATH="${REPLICATION_DIR}/../install/km/lib/"
-
-# Location for dynamic and static data
-export DATA_PATH="/home/reiner/Projects/OceanDSL/architecture-recovery-and-optimization-data"
-
-# List of external functions
-export EXTERNAL_FUNCTIONS_MAP="${REPLICATION_DIR}/builtin-functions.csv"
-export STATIC_AUX_MODULE_MAP="${REPLICATION_DIR}/uvic-aux-map-file.csv"
-
-export TOOL_DIR="/home/reiner/temp/experiment/install"
-
-# Data directory for results from the optimization
-OPTIMIZATION_DATA="/home/reiner/jss-results"
-
-DAR="${TOOL_DIR}/oceandsl-tools/bin/dar"
-SAR="${TOOL_DIR}/oceandsl-tools/bin/sar"
-MAA="${TOOL_DIR}/oceandsl-tools/bin/maa"
-MOP="${TOOL_DIR}/oceandsl-tools/bin/mop"
-MVIS="${TOOL_DIR}/oceandsl-tools/bin/mvis"
-RELABEL="${TOOL_DIR}/oceandsl-tools/bin/relabel"
-FXCA="${TOOL_DIR}/oceandsl-tools/bin/fxca"
-FXTRAN="${TOOL_DIR}/fxtran"
-RESTRUCTURING="${TOOL_DIR}/oceandsl-tools/bin/restructuring"
-DELTA="${TOOL_DIR}/oceandsl-tools/bin/delta"
-
-# collector tool
-COLLECTOR="${TOOL_DIR}/collector/bin/collector"
-
-# addr2line
-ADDR2LINE=`which addr2line`
-
 # Path to uvic repository
 REPOSITORY_DIR="${REPLICATION_DIR}/UVic_ESCM/2.9"
 # Compile configurtion for kieker
@@ -44,5 +9,3 @@ PROCESSED_CODE_PATH="${REPOSITORY_DIR}/run/code"
 # Path to the executable
 EXECUTABLE="${REPOSITORY_DIR}/run/UVic_ESCM"
 
-# Hostname where the dynamic analysis was executed
-HOST=glasgow
diff --git a/models/uvic/prepare-models-for-inspection.sh b/models/uvic/prepare-models-for-inspection.sh
index 8207b12..f412b1e 100755
--- a/models/uvic/prepare-models-for-inspection.sh
+++ b/models/uvic/prepare-models-for-inspection.sh
@@ -4,6 +4,12 @@ export BASE_DIR=$(cd "$(dirname "$0")"; pwd)
 
 . "${BASE_DIR}/../../common-functions.rc"
 
+if [ -f "${BASE_DIR}/../config" ] ; then
+        . "${BASE_DIR}/../config"
+else
+        echo "Main config file not found."
+        exit 1
+fi
 if [ -f "$BASE_DIR/config" ] ; then
         . $BASE_DIR/config
 else
@@ -56,12 +62,16 @@ for JOB_DIRECTORY in `find "${OPTIMIZATION_DATA}/jss"* -name '*uvic*job'` ; do
 
 			echo "$ORIGINAL -> $OPTIMIZED in $STEPS"
 
-			cat "${BASE_DIR}/template.project" | sed "s/NAME/${MODEL_ID}-$OPTIMIZED/g" > "$OPTIMIZED/.project"
+			if [ -d "$OPTIMIZED" ] ; then
+				cat "${BASE_DIR}/template.project" | sed "s/NAME/${MODEL_ID}-$OPTIMIZED/g" > "$OPTIMIZED/.project"
 
-			rm -rf "merge-${OPTIMIZED}"
-			mkdir "merge-${OPTIMIZED}"
+				rm -rf "merge-${OPTIMIZED}"
+				mkdir "merge-${OPTIMIZED}"
 
-			"${MOP}" -e "${MODEL_ID}-${OPTIMIZED}-merged" -i "original-model" "${OPTIMIZED}" -o "merge-${OPTIMIZED}" -s all merge >> "${MOP_LOG}" 2>&1
+				"${MOP}" -e "${MODEL_ID}-${OPTIMIZED}-merged" -i "original-model" "${OPTIMIZED}" -o "merge-${OPTIMIZED}" -s all merge >> "${MOP_LOG}" 2>&1
+			else
+				warning "Missing $OPTIMIZED model"
+			fi
 		done
 	else
 		error "Missing MED output for job $BASENAME"
diff --git a/models/uvic/run-architecture-analysis.sh b/models/uvic/run-architecture-analysis.sh
index 56d3653..c6b8635 100755
--- a/models/uvic/run-architecture-analysis.sh
+++ b/models/uvic/run-architecture-analysis.sh
@@ -11,6 +11,12 @@ else
         exit 1
 fi
 
+if [ -f "${BASE_DIR}/../config" ] ; then
+        . "${BASE_DIR}/../config"
+else
+        echo "Main config file not found."
+        exit 1
+fi
 if [ -f "$BASE_DIR/config" ] ; then
         . $BASE_DIR/config
 else
diff --git a/models/uvic/run-dynamic-analysis.sh b/models/uvic/run-dynamic-analysis.sh
index 53496b7..fceb6e2 100755
--- a/models/uvic/run-dynamic-analysis.sh
+++ b/models/uvic/run-dynamic-analysis.sh
@@ -11,6 +11,12 @@ else
         exit 1
 fi
 
+if [ -f "${BASE_DIR}/../config" ] ; then
+        . "${BASE_DIR}/../config"
+else
+        echo "Main config file not found."
+        exit 1
+fi
 if [ -f "${BASE_DIR}/config" ] ; then
         . "${BASE_DIR}/config"
 else
diff --git a/models/uvic/run-dynamic-observation.sh b/models/uvic/run-dynamic-observation.sh
index 929fca7..f70cc37 100755
--- a/models/uvic/run-dynamic-observation.sh
+++ b/models/uvic/run-dynamic-observation.sh
@@ -4,6 +4,12 @@ export BASE_DIR=$(cd "$(dirname "$0")"; pwd)
 
 . "${BASE_DIR}/../../common-functions.rc"
 
+if [ -f "${BASE_DIR}/../config" ] ; then
+        . "${BASE_DIR}/../config"
+else
+        echo "Main config file not found."
+        exit 1
+fi
 if [ -f "$BASE_DIR/config" ] ; then
         . "${BASE_DIR}/config"
 else
diff --git a/models/uvic/run-static-analysis.sh b/models/uvic/run-static-analysis.sh
index aa0861f..74219ab 100755
--- a/models/uvic/run-static-analysis.sh
+++ b/models/uvic/run-static-analysis.sh
@@ -13,6 +13,12 @@ fi
 
 checkMode $2
 
+if [ -f "${BASE_DIR}/../config" ] ; then
+        . "${BASE_DIR}/../config"
+else
+        echo "Main config file not found."
+        exit 1
+fi
 if [ -f "${BASE_DIR}/config" ] ; then
         . "${BASE_DIR}/config"
 else
diff --git a/models/uvic/run-static-code-processing.sh b/models/uvic/run-static-code-processing.sh
index cb81d16..5f20d3e 100755
--- a/models/uvic/run-static-code-processing.sh
+++ b/models/uvic/run-static-code-processing.sh
@@ -4,6 +4,12 @@ export BASE_DIR=$(cd "$(dirname "$0")"; pwd)
 
 . "${BASE_DIR}/../../common-functions.rc"
 
+if [ -f "${BASE_DIR}/../config" ] ; then
+        . "${BASE_DIR}/../config"
+else
+        echo "Main config file not found."
+        exit 1
+fi
 if [ -f "$BASE_DIR/config" ] ; then
         . "${BASE_DIR}/config"
 else
-- 
GitLab