diff --git a/upassword b/upassword index 6c4a8f6..54105be 100755 --- a/upassword +++ b/upassword @@ -5091,24 +5091,27 @@ public class upassword { private static final Pattern SPACES = Pattern.compile("\\s+"); + private static final String BATCH_OPTION = "--batch"; + + private static final String AFTER_COMMAND = BATCH_OPTION + "-after "; + + private static final int AFTER_COMMAND_STRIP = AFTER_COMMAND.length(); + public static void main(String[] args) { upassword upassword = new upassword(); - if (args.length > 0 && args[0].equals("--batch")) { - StringBuilder sb = new StringBuilder(); - for (int i = 1; i < args.length; i++) { - if (i > 1) sb.append(" "); - sb.append(args[i]); - } - String after = sb.toString(); - if (after.length() == 0) after = null; - + if (args.length > 0 && args[0].equals(BATCH_OPTION)) { + String after = null; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); try { while (true) { String line = br.readLine(); if (line == null) break; - upassword.run(SPACES.split(line)); - if (after != null) println(after); + if (line.startsWith(AFTER_COMMAND)) { + after = line.substring(AFTER_COMMAND_STRIP); + } else { + upassword.run(SPACES.split(line)); + if (after != null) println(after); + } } } catch (IOException e) { die(null, e);