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;
10 import eu.svjatoslav.commons.cli_helper.parameter_parser.Parser;
11 import eu.svjatoslav.commons.cli_helper.parameter_parser.parameter.DirectoryParameter;
12 import eu.svjatoslav.commons.cli_helper.parameter_parser.parameter.NullParameter;
13 import eu.svjatoslav.commons.cli_helper.parameter_parser.parameter.StringParameters;
17 class CommandlineHandler {
19 final Parser parser = new Parser();
21 private final NullParameter recursiveParameter = parser.add(
22 new NullParameter("Enable recursive mode.")).addAliases("-r",
25 private final StringParameters inputPatternParameter = parser.add(
26 new StringParameters("File input pattern.")).addAliases("-i",
29 private final DirectoryParameter workingDirectoryParameter = parser
30 .add(new DirectoryParameter("Working directory."))
31 .addAliases("-w", "--working-directory").mustExist();
33 public BomStrippingOptions parseCommandlineArguments(final String[] args) {
35 final BomStrippingOptions options = new BomStrippingOptions();
37 if (!parser.parse(args))
40 if (recursiveParameter.isSpecified())
41 options.recursive = true;
43 if (workingDirectoryParameter.isSpecified())
44 options.targetDirectory = workingDirectoryParameter.getValue();
46 options.targetDirectory = new File(System.getProperty("user.dir"));
48 // TODO: add support for multiple input patterns
49 if (inputPatternParameter.isSpecified())
50 options.inputPatterns.addAll(inputPatternParameter.getValue());