visited.add(file.getAbsolutePath()); reader = new LineNumberReader(new FileReader(file)); if (commandSpec.parser().useSimplifiedAtFiles()) { String token; while ((token = reader.readLine()) != null) {
/** Sets whether to use a simplified argument file format that is compatible with JCommander. * In this format, every line (except empty lines and comment lines) * is interpreted as a single argument. Arguments containing whitespace do not need to be quoted. * When system property {@code "picocli.useSimplifiedAtFiles"} is defined, the system property value overrides the programmatically set value. * @param simplifiedAtFiles whether to use a simplified argument file format. The default is {@code false}. * @return this {@code CommandLine} object, to allow method chaining * @since 3.9 */ public CommandLine setUseSimplifiedAtFiles(boolean simplifiedAtFiles) { getCommandSpec().parser().useSimplifiedAtFiles(simplifiedAtFiles); for (CommandLine command : getCommandSpec().subcommands().values()) { command.setUseSimplifiedAtFiles(simplifiedAtFiles); } return this; } private static boolean empty(String str) { return str == null || str.trim().length() == 0; }
@Test public void testUseSimplifiedAtFilesFromSystemProperty() { ParserSpec parser = new ParserSpec(); assertFalse(parser.useSimplifiedAtFiles()); System.setProperty("picocli.useSimplifiedAtFiles", "true"); assertTrue(parser.useSimplifiedAtFiles()); }
visited.add(file.getAbsolutePath()); reader = new LineNumberReader(new FileReader(file)); if (commandSpec.parser().useSimplifiedAtFiles()) { String token; while ((token = reader.readLine()) != null) {
/** Sets whether to use a simplified argument file format that is compatible with JCommander. * In this format, every line (except empty lines and comment lines) * is interpreted as a single argument. Arguments containing whitespace do not need to be quoted. * When system property {@code "picocli.useSimplifiedAtFiles"} is defined, the system property value overrides the programmatically set value. * @param simplifiedAtFiles whether to use a simplified argument file format. The default is {@code false}. * @return this {@code CommandLine} object, to allow method chaining * @since 3.9 */ public CommandLine setUseSimplifiedAtFiles(boolean simplifiedAtFiles) { getCommandSpec().parser().useSimplifiedAtFiles(simplifiedAtFiles); for (CommandLine command : getCommandSpec().subcommands().values()) { command.setUseSimplifiedAtFiles(simplifiedAtFiles); } return this; } private static boolean empty(String str) { return str == null || str.trim().length() == 0; }
@Test public void testUseSimplifiedAtFilesFromSystemProperty() { ParserSpec parser = new ParserSpec(); assertFalse(parser.useSimplifiedAtFiles()); System.setProperty("picocli.useSimplifiedAtFiles", "true"); assertTrue(parser.useSimplifiedAtFiles()); }
@Test public void testUseSimplifiedAtFilesCanBeSetProgrammatically() { ParserSpec parser = new ParserSpec(); assertFalse(parser.useSimplifiedAtFiles()); parser.useSimplifiedAtFiles(true); assertTrue(parser.useSimplifiedAtFiles()); }
@Test public void testUseSimplifiedAtFilesIsOverriddenBySystemProperty() { ParserSpec parser = new ParserSpec(); assertFalse(parser.useSimplifiedAtFiles()); parser.useSimplifiedAtFiles(true); System.setProperty("picocli.useSimplifiedAtFiles", "false"); assertFalse(parser.useSimplifiedAtFiles()); }
/** Returns whether to use a simplified argument file format that is compatible with JCommander. * In this format, every line (except empty lines and comment lines) * is interpreted as a single argument. Arguments containing whitespace do not need to be quoted. * When system property {@code "picocli.useSimplifiedAtFiles"} is defined, the system property value overrides the programmatically set value. * @return whether to use a simplified argument file format. The default is {@code false}. * @since 3.9 */ public boolean isUseSimplifiedAtFiles() { return getCommandSpec().parser().useSimplifiedAtFiles(); }
@Test public void testUseSimplifiedAtFilesFromSystemPropertyCaseInsensitive() { ParserSpec parser = new ParserSpec(); assertFalse(parser.useSimplifiedAtFiles()); System.setProperty("picocli.useSimplifiedAtFiles", "TRUE"); assertTrue(parser.useSimplifiedAtFiles()); }
@Test public void testUseSimplifiedAtFilesFromEmptySystemProperty() { ParserSpec parser = new ParserSpec(); assertFalse(parser.useSimplifiedAtFiles()); System.setProperty("picocli.useSimplifiedAtFiles", ""); assertTrue(parser.useSimplifiedAtFiles()); }
@Test public void testUseSimplifiedAtFilesFromSystemPropertyCaseInsensitive() { ParserSpec parser = new ParserSpec(); assertFalse(parser.useSimplifiedAtFiles()); System.setProperty("picocli.useSimplifiedAtFiles", "TRUE"); assertTrue(parser.useSimplifiedAtFiles()); }
@Test public void testUseSimplifiedAtFilesIsOverriddenBySystemProperty() { ParserSpec parser = new ParserSpec(); assertFalse(parser.useSimplifiedAtFiles()); parser.useSimplifiedAtFiles(true); System.setProperty("picocli.useSimplifiedAtFiles", "false"); assertFalse(parser.useSimplifiedAtFiles()); }
@Test public void testUseSimplifiedAtFilesFromEmptySystemProperty() { ParserSpec parser = new ParserSpec(); assertFalse(parser.useSimplifiedAtFiles()); System.setProperty("picocli.useSimplifiedAtFiles", ""); assertTrue(parser.useSimplifiedAtFiles()); }
/** Returns whether to use a simplified argument file format that is compatible with JCommander. * In this format, every line (except empty lines and comment lines) * is interpreted as a single argument. Arguments containing whitespace do not need to be quoted. * When system property {@code "picocli.useSimplifiedAtFiles"} is defined, the system property value overrides the programmatically set value. * @return whether to use a simplified argument file format. The default is {@code false}. * @since 3.9 */ public boolean isUseSimplifiedAtFiles() { return getCommandSpec().parser().useSimplifiedAtFiles(); }
@Test public void testUseSimplifiedAtFilesCanBeSetProgrammatically() { ParserSpec parser = new ParserSpec(); assertFalse(parser.useSimplifiedAtFiles()); parser.useSimplifiedAtFiles(true); assertTrue(parser.useSimplifiedAtFiles()); }