From b870cda6389d3efcdb8018eb13aaa77186e9fdfe Mon Sep 17 00:00:00 2001 From: Andrew Branson Date: Fri, 4 Apr 2014 12:53:34 +0200 Subject: AbstractMain with config file checking got lost from previous commit. Refs #177 --- .../java/com/c2kernel/process/AbstractMain.java | 70 +++++++++------------- 1 file changed, 27 insertions(+), 43 deletions(-) (limited to 'src/main/java') diff --git a/src/main/java/com/c2kernel/process/AbstractMain.java b/src/main/java/com/c2kernel/process/AbstractMain.java index 03807f0..b594c1a 100644 --- a/src/main/java/com/c2kernel/process/AbstractMain.java +++ b/src/main/java/com/c2kernel/process/AbstractMain.java @@ -29,54 +29,31 @@ abstract public class AbstractMain { public static boolean runningAsWrapper = false; - /************************************************************************** - * - **************************************************************************/ - static protected void usage() - { - System.out.println(); - System.out.println("USAGE: com.c2kernel.process.AbstractMain \n" + - " -config \n" + - " [-connect ] (or LocalCentre in conf)\n" + - " [-h] [-help] \n" + - " [-logLevel 0-19] \n" + - " [-logFile ]"); - Logger.die("Initialisation error"); - } /************************************************************************** * reading and setting input paramaters **************************************************************************/ - public static Properties readC2KArgs( String[] args ) { + public static Properties readC2KArgs( String[] args ) throws Exception { Properties c2kProps; Properties argProps = new Properties(); int logLevel = 0; PrintStream logStream = System.out; - if (args == null) return argProps; - int i = 0; while( i < args.length ) { if (args[i].startsWith("-") && args[i].length()>1) { String key = args[i].substring(1); - if (argProps.containsKey(key)) { - System.err.println("Argument "+args[i]+" given twice"); - usage(); - } + if (argProps.containsKey(key)) + throw new Exception("Argument "+args[i]+" given twice"); String value = ""; if (!args[i+1].startsWith("-")) value = args[++i]; argProps.put(key, value); i++; } - else { - System.err.println("Bad argument: "+args[i]); - usage(); - } - } - - if( argProps.containsKey("h") || argProps.containsKey("help")) { - usage(); + else + throw new Exception("Bad argument: "+args[i]); + } if (argProps.containsKey("logFile")) @@ -84,7 +61,7 @@ abstract public class AbstractMain logStream = new PrintStream(new FileOutputStream(argProps.getProperty("logFile"), true)); } catch (FileNotFoundException e) { e.printStackTrace(); - System.err.println("Logfile "+argProps.getProperty("logFile")+" cannot be created"); + throw new Exception("Logfile "+argProps.getProperty("logFile")+" cannot be created"); } // Set up log stream @@ -100,9 +77,11 @@ abstract public class AbstractMain } String configPath = argProps.getProperty("config"); - if (configPath == null || !new File(configPath).exists()) { - System.err.println("Config file "+configPath+" not found"); - } + if (configPath == null) + throw new Exception("Config file not specified"); + + if (!new File(configPath).exists()) + throw new Exception("Config file "+configPath+" not found"); else Logger.msg(0, "Config file: "+configPath); @@ -110,17 +89,22 @@ abstract public class AbstractMain c2kProps = FileStringUtility.loadConfigFile(argProps.getProperty("config") ); c2kProps.putAll(argProps); // args overlap config - if (c2kProps.containsKey("connect")) { - String connectFile = c2kProps.getProperty("connect"); + String connectFile = c2kProps.getProperty("connect"); + if (connectFile == null) + throw new Exception("Connect file not specified"); + + if (!new File(connectFile).exists()) + throw new Exception("Connect file "+connectFile+" not found"); + else Logger.msg(0, "Connect file: "+connectFile); - FileStringUtility.appendConfigFile( c2kProps, connectFile); - - if (!c2kProps.containsKey("LocalCentre")) { - String connectFileName = new File(connectFile).getName(); - String centreId = connectFileName.substring(0, connectFileName.lastIndexOf(".clc")); - c2kProps.setProperty("LocalCentre", centreId); - } - } + + FileStringUtility.appendConfigFile( c2kProps, connectFile); + + if (!c2kProps.containsKey("LocalCentre")) { + String connectFileName = new File(connectFile).getName(); + String centreId = connectFileName.substring(0, connectFileName.lastIndexOf(".clc")); + c2kProps.setProperty("LocalCentre", centreId); + } c2kProps.putAll(argProps); // args override connect file too Logger.msg(7, "AbstractMain::standardSetUp() - readC2KArgs() DONE."); -- cgit v1.2.3