From b5a166c42e35daccc69b8664cdc8746655382f1d Mon Sep 17 00:00:00 2001
From: Peter Alexander <p.m.w.alexander@gmail.com>
Date: Thu, 9 Feb 2017 13:59:59 +0000
Subject: [PATCH] Automatically add build version to output log.

---
 scripts/compilePlum.sh              |  7 +++++++
 scripts/runPlum.sh                  |  4 +++-
 src/ac/ed/lurg/ModelConfig.java     | 12 ++++++++++--
 src/ac/ed/lurg/utils/LogWriter.java |  7 ++++---
 4 files changed, 24 insertions(+), 6 deletions(-)

diff --git a/scripts/compilePlum.sh b/scripts/compilePlum.sh
index 606f0569..4e4ed6a5 100755
--- a/scripts/compilePlum.sh
+++ b/scripts/compilePlum.sh
@@ -1,3 +1,10 @@
 cd /exports/csce/eddie/geos/groups/LURG/models/PLUM/plumv2
+
+buildver="$(hg identify --num)"
+
+echo "Building version: $buildver"
+
+echo "$buildver" > ../classes/buildver
+
 javac -J-Xmx1g -cp .:/exports/csce/eddie/geos/groups/LURG/models/gams/gams24.7_linux_x64_64_sfx/apifiles/Java/api/GAMSJavaAPI.jar ./src/ac/ed/lurg/*.java ./src/ac/ed/lurg/country/*.java ./src/ac/ed/lurg/country/gams/*.java ./src/ac/ed/lurg/demand/*.java ./src/ac/ed/lurg/landuse/*.java ./src/ac/ed/lurg/output/*.java ./src/ac/ed/lurg/types/*.java ./src/ac/ed/lurg/utils/*.java ./src/ac/ed/lurg/yield/*.java ./src/ac/sac/raster/*.java -d ../classes
 
diff --git a/scripts/runPlum.sh b/scripts/runPlum.sh
index 873ad277..ea473eac 100755
--- a/scripts/runPlum.sh
+++ b/scripts/runPlum.sh
@@ -21,7 +21,9 @@ export MALLOC_ARENA_MAX
 
 echo MALLOC_ARENA_MAX is $MALLOC_ARENA_MAX
 
+buildver="$(cat /exports/csce/eddie/geos/groups/LURG/models/PLUM/classes/buildver)"
+
 echo "starting"
-java -Xmx1G -XX:+PrintGC -classpath /exports/csce/eddie/geos/groups/LURG/models/gams/gams24.7_linux_x64_64_sfx/apifiles/Java/api/GAMSJavaAPI.jar:/exports/csce/eddie/geos/groups/LURG/models/PLUM/classes -DCONFIG_FILE=/exports/csce/eddie/geos/groups/LURG/models/PLUM/output/$1/config.properties ac.ed.lurg.ModelMain
+java -Xmx1G -XX:+PrintGC -classpath /exports/csce/eddie/geos/groups/LURG/models/gams/gams24.7_linux_x64_64_sfx/apifiles/Java/api/GAMSJavaAPI.jar:/exports/csce/eddie/geos/groups/LURG/models/PLUM/classes -DBUILDVER=$buildver -DCONFIG_FILE=/exports/csce/eddie/geos/groups/LURG/models/PLUM/output/$1/config.properties ac.ed.lurg.ModelMain
 echo "finished"
 
diff --git a/src/ac/ed/lurg/ModelConfig.java b/src/ac/ed/lurg/ModelConfig.java
index f03a36dd..5c9ca7d9 100644
--- a/src/ac/ed/lurg/ModelConfig.java
+++ b/src/ac/ed/lurg/ModelConfig.java
@@ -23,12 +23,20 @@ public class ModelConfig {
 			System.err.println("Problems reading config file");
 			System.err.println(e.getMessage());
 		}
+	}
+
+        public static String getSetupDetails() {
+		String buildVerion = System.getProperty("BUILDVER");
+		StringBuffer sb = new StringBuffer("Build version: " + buildVerion + "\n");
 
-		Enumeration<?> em = configFile.keys();
+		Properties props = getModelConfig().configFile;
+		Enumeration<?> em = props.keys();
 		while(em.hasMoreElements()) {
 			String str = (String) em.nextElement();
-			System.out.println(str + ": " + configFile.get(str));
+			sb.append(str + ": " + props.get(str) + "\n");
 		}
+
+		return sb.toString();
 	}
 	
 	private static ModelConfig getModelConfig() {
diff --git a/src/ac/ed/lurg/utils/LogWriter.java b/src/ac/ed/lurg/utils/LogWriter.java
index 32b5da0c..8403e1b3 100644
--- a/src/ac/ed/lurg/utils/LogWriter.java
+++ b/src/ac/ed/lurg/utils/LogWriter.java
@@ -34,9 +34,10 @@ public class LogWriter {
 	}
 	
 	private static LogWriter getLogWriter() {
-		if (logWriter == null)
+		if (logWriter == null) {
 			logWriter = new LogWriter(ModelConfig.OUTPUT_DIR + File.separator + "log.txt");
-
+			logWriter.print(ModelConfig.getSetupDetails(), System.out, true);
+		}
 		return logWriter;
 	}
 
@@ -64,4 +65,4 @@ public class LogWriter {
 	protected void finalize() {
 		logFile.close();
 	}
-}
\ No newline at end of file
+}
-- 
GitLab