2 * Meviz - Various tools collection to work with multimedia. Author: Svjatoslav Agejenko.
3 * This project is released under Creative Commons Zero (CC0) license.
7 package eu.svjatoslav.meviz.bomremove;
9 import eu.svjatoslav.commons.commandline.parameterparser.Parser;
10 import eu.svjatoslav.commons.commandline.parameterparser.parameter.DirectoryParameter;
11 import eu.svjatoslav.commons.commandline.parameterparser.parameter.NullParameter;
12 import eu.svjatoslav.commons.commandline.parameterparser.parameter.StringParameters;
16 class CommandlineHandler {
18 final Parser parser = new Parser();
20 private final NullParameter recursiveParameter = parser.add(
21 new NullParameter("Enable recursive mode.")).addAliases("-r",
24 private final StringParameters inputPatternParameter = parser.add(
25 new StringParameters("File input pattern.")).addAliases("-i",
28 private final DirectoryParameter workingDirectoryParameter = parser
29 .add(new DirectoryParameter("Working directory."))
30 .addAliases("-w", "--working-directory").mustExist();
32 public BomStrippingOptions parseCommandlineArguments(final String[] args) {
34 final BomStrippingOptions options = new BomStrippingOptions();
36 if (!parser.parse(args))
39 if (recursiveParameter.isSpecified())
40 options.recursive = true;
42 if (workingDirectoryParameter.isSpecified())
43 options.targetDirectory = workingDirectoryParameter.getValue();
45 options.targetDirectory = new File(System.getProperty("user.dir"));
47 // TODO: add support for multiple input patterns
48 if (inputPatternParameter.isSpecified())
49 options.inputPatterns.addAll(inputPatternParameter.getValue());