Browse Source

Add -settings switch to load in a settings file from the command-line.

git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@4956 bbc10eb1-c90d-0410-af57-cb519fbb1720
master
Dave Parker 14 years ago
parent
commit
0ec5258066
  1. 22
      prism/src/prism/Prism.java
  2. 14
      prism/src/prism/PrismCL.java
  3. 14
      prism/src/prism/PrismSettings.java

22
prism/src/prism/Prism.java

@ -233,18 +233,34 @@ public class Prism implements PrismSettingsListener
}
/**
* Read in PRISM settings from a file (.prism in user's home directory).
* Read in PRISM settings from the default file (.prism in user's home directory).
* If no file exists, attempt to create a new one with default settings.
*/
public void loadUserSettingsFile()
{
loadUserSettingsFile(null);
}
/**
* Read in PRISM settings from a specified file.
* If the file is null, use the default (.prism in user's home directory).
* If no file exists, attempt to create a new one with default settings.
*/
public void loadUserSettingsFile(File settingsFile)
{
// load user's default settings
try {
settings.loadSettingsFile();
if (settingsFile == null)
settings.loadSettingsFile();
else
settings.loadSettingsFile(settingsFile);
} catch (PrismException e) {
// if there were no user defaults to load, create them
try {
settings.saveSettingsFile();
if (settingsFile == null)
settings.saveSettingsFile();
else
settings.saveSettingsFile(settingsFile);
} catch (PrismException ex) {
mainLog.printWarning("Failed to create new PRISM settings file.");
}

14
prism/src/prism/PrismCL.java

@ -91,6 +91,7 @@ public class PrismCL implements PrismModelListener
// files/filenames
private String mainLogFilename = "stdout";
private String techLogFilename = "stdout";
private String settingsFilename = null;
private String modelFilename = null;
private String importStatesFilename = null;
private String importLabelsFilename = null;
@ -426,6 +427,10 @@ public class PrismCL implements PrismModelListener
// parse command line arguments
parseArguments(args);
// load setting file if requested
if (settingsFilename != null)
prism.loadUserSettingsFile(new File(settingsFilename));
// initialise
prism.initialise();
@ -839,6 +844,14 @@ public class PrismCL implements PrismModelListener
printVersion();
exit();
}
// load settings
else if (sw.equals("settings")) {
if (i < args.length - 1) {
settingsFilename = args[++i].trim();
} else {
errorAndExit("Incomplete -" + sw + " switch");
}
}
// print a list of all keywords (hidden option)
else if (sw.equals("keywords")) {
printListOfKeywords();
@ -1633,6 +1646,7 @@ public class PrismCL implements PrismModelListener
mainLog.println();
mainLog.println("-help .......................... Display this help message");
mainLog.println("-version ....................... Display tool version");
mainLog.println("-settings <file>................ Load settings from <file>");
mainLog.println();
mainLog.println("-pf <props> (or -pctl or -csl) . Model check properties <props>");
mainLog.println("-property <n> (or -prop <n>) ... Only model check property <n>");

14
prism/src/prism/PrismSettings.java

@ -500,8 +500,11 @@ public class PrismSettings implements Observer
public synchronized void saveSettingsFile() throws PrismException
{
File file = getLocationForSettingsFile();
saveSettingsFile(getLocationForSettingsFile());
}
public synchronized void saveSettingsFile(File file) throws PrismException
{
try
{
FileWriter out = new FileWriter(file);
@ -545,8 +548,11 @@ public class PrismSettings implements Observer
public synchronized void loadSettingsFile() throws PrismException
{
File file = getLocationForSettingsFile();
loadSettingsFile(getLocationForSettingsFile());
}
public synchronized void loadSettingsFile(File file) throws PrismException
{
BufferedReader reader;
String line = null;
String key = "";

Loading…
Cancel
Save