From e99c06994dd1e8e0d1740b7eaa89cd2c63861e89 Mon Sep 17 00:00:00 2001 From: Jim Procter Date: Tue, 16 Jun 2020 17:12:54 +0100 Subject: [PATCH] JAL-3660 JAL-3561 output alignment as requested file format as validated by FileFormats - report if format cannot be resolved or FileFormatI does not support export. Merged jbp patch for 2.11.1.0 to rhanson's Jalview-JS/develop reworking of args parsing --- src/jalview/bin/Jalview.java | 52 +++++++++++++++++++++++++++--------------- 1 file changed, 33 insertions(+), 19 deletions(-) diff --git a/src/jalview/bin/Jalview.java b/src/jalview/bin/Jalview.java index fea99fb..b8aa928 100755 --- a/src/jalview/bin/Jalview.java +++ b/src/jalview/bin/Jalview.java @@ -73,7 +73,6 @@ import jalview.schemes.ColourSchemeProperty; import jalview.util.MessageManager; import jalview.util.Platform; import jalview.ws.jws2.Jws2Discoverer; -//import netscape.javascript.JSObject; /** * Main class for Jalview Application
@@ -1038,28 +1037,43 @@ public class Jalview implements ApplicationSingletonI "Creating image map: " + imageFile.getAbsolutePath()); continue; default: - format = FileFormats.getInstance().forName(outputFormat); - if (format == null) - { - System.out.println("Invalid file format: " + outputFormat); - break; - } - fname = new File(aparser.nextValue()).getAbsolutePath(); - af.saveAlignment(fname, format); - if (!af.isSaveAlignmentSuccessful()) - { - System.out.println("Error writing file " + fname + " in " + format - + " format!!"); - break; - } - continue; + // fall through - try to parse as an alignment data export format + FileFormatI outFormat=null; + try { + outFormat = FileFormats.getInstance().forName(outputFormat); + } catch (Exception formatP) { + } + if (outFormat==null) { + System.out.println("Couldn't parse "+outputFormat+" as a valid Jalview format string."); + continue; + } + if (!outFormat.isWritable()) + { + System.out.println( + "This version of Jalview does not support alignment export as " + + outputFormat); + continue; + } + // record file as it was passed to Jalview so it is recognisable to the CLI caller + String file; + fname = new File(file=aparser.nextValue()).getAbsolutePath(); + // JBPNote - yuck - really wish we did have a bean returned from this which gave success/fail like before ! + af.saveAlignment(fname, outFormat); + if (!af.isSaveAlignmentSuccessful()) + { + System.out.println("Written alignment in " + outputFormat + + " format to " + file); + continue; + } else { + System.out.println("Error writing file " + file + " in " + + outputFormat + " format!!"); + } } - System.out.println("Unknown arg: " + outputFormat); - break; } + // ??? Should report - 'ignoring' extra args here... while (aparser.getSize() > 0) { - System.out.println("Unknown arg: " + aparser.nextValue()); + System.out.println("Ignoring extra argument: " + aparser.nextValue()); } } -- 1.7.10.2