import java.util.logging.ConsoleHandler;
import java.util.logging.Level;
import java.util.logging.Logger;
+import java.util.stream.Collectors;
import javax.swing.JDialog;
import javax.swing.JFrame;
import groovy.util.GroovyScriptEngine;
import jalview.bin.argparser.Arg;
import jalview.bin.argparser.Arg.Opt;
+import jalview.bin.argparser.Arg.Type;
import jalview.bin.argparser.ArgParser;
import jalview.bin.argparser.BootstrapArgs;
import jalview.ext.so.SequenceOntology;
private boolean QUIET = false;
- public boolean quiet()
+ public static boolean quiet()
{
- return QUIET;
+ return Jalview.getInstance() != null && Jalview.getInstance().QUIET;
}
static
System.setSecurityManager(null);
}
- if (args == null)
+ if (args == null || args.length == 0 || (args.length == 1
+ && (args[0] == null || args[0].length() == 0)))
+ {
args = new String[] {};
+ }
// get args needed before proper ArgParser
bootstrapArgs = BootstrapArgs.getBootstrapArgs(args);
}
}
- if (bootstrapArgs.contains(Arg.HELP))
+ if (bootstrapArgs.contains(Arg.HELP)
+ || bootstrapArgs.contains(Arg.VERSION))
{
QUIET = true;
}
final File appdir = new File(appdirString);
new Thread()
{
+
@Override
public void run()
{
}.start();
}
- if (!quiet())
+ if (!quiet() || bootstrapArgs.contains(Arg.VERSION))
{
System.out.println(
"Java version: " + System.getProperty("java.version"));
- System.out.println("Java Home: " + System.getProperty("java.home"));
- System.out.println(System.getProperty("os.arch") + " "
+ System.out.println("Java home: " + System.getProperty("java.home"));
+ System.out.println("Java arch: " + System.getProperty("os.arch") + " "
+ System.getProperty("os.name") + " "
+ System.getProperty("os.version"));
.bootstrapProperties(bootstrapArgs.get(Arg.PROPS));
// report Jalview version
- Cache.loadBuildProperties(true);
+ Cache.loadBuildProperties(
+ !quiet() || bootstrapArgs.contains(Arg.VERSION));
+
+ // stop now if only after --version
+ if (bootstrapArgs.contains(Arg.VERSION))
+ {
+ Jalview.exit(null, 0);
+ }
// old ArgsParser
ArgsParser aparser = new ArgsParser(args);
if (bootstrapArgs.contains(Arg.ARGFILE))
{
argparser = ArgParser.parseArgFiles(
- bootstrapArgs.getList(Arg.ARGFILE),
+ bootstrapArgs.getValueList(Arg.ARGFILE),
bootstrapArgs.getBoolean(Arg.INITSUBSTITUTIONS),
bootstrapArgs);
}
{
if (bootstrapArgs.contains(Arg.HELP))
{
- System.out.println(Arg.usage());
+ List<Map.Entry<Type, String>> helpArgs = bootstrapArgs
+ .getList(Arg.HELP);
+ System.out.println(Arg.usage(helpArgs.stream().map(e -> e.getKey())
+ .collect(Collectors.toList())));
Jalview.exit(null, 0);
}
if (aparser.contains("help") || aparser.contains("h"))
{
+ /*
+ * Now using new usage statement.
showUsage();
+ */
+ System.out.println(Arg.usage());
Jalview.exit(null, 0);
}
List<String> setprops = new ArrayList<>();
if (bootstrapArgs.contains(Arg.SETPROP))
{
- setprops = bootstrapArgs.getList(Arg.SETPROP);
+ setprops = bootstrapArgs.getValueList(Arg.SETPROP);
}
else
{
public static void exit(String message, int exitcode)
{
- Console.debug("Using Jalview.exit");
- if (message != null)
- if (exitcode == 0)
- Console.info(message);
- else
- Console.error(message);
+ if (Console.log == null)
+ {
+ // Don't start the logger just to exit!
+ if (message != null)
+ {
+ if (exitcode == 0)
+ {
+ System.out.println(message);
+ }
+ else
+ {
+ System.err.println(message);
+ }
+ }
+ }
+ else
+ {
+ Console.debug("Using Jalview.exit");
+ if (message != null)
+ {
+ if (exitcode == 0)
+ {
+ Console.info(message);
+ }
+ else
+ {
+ Console.error(message);
+ }
+ }
+ }
if (exitcode > -1)
+ {
System.exit(exitcode);
+ }
}
/*