Re: Command line argument files
Stefan, Jan, Thanks for your response. Understood about avoiding the dependency. As Matt pointed out, there are ways around this - picocli is a single source file for example), but at the end of the day what matters most is how much value this would add. I thought there was a request for this feature from Ant users but if that’s not the case or there are already alternative solutions then it’s not as good a fit as I imagined. No worries, all good! Thanks again for getting back to me! Remko > On Nov 19, 2018, at 1:23, Matt Sicker wrote: > > FWIW, picocli is small enough to simply shade into your project. We do it > in Log4j with some CLI tooling that’s included. > >> On Sun, Nov 18, 2018 at 09:19, Stefan Bodewig wrote: >> >> Hi Remko >> >>> On 2018-11-15, Remko Popma wrote: >>> >>> Would there be any interest in using picocli ( >>> https://github.com/remkop/picocli) as the command line parser in >>> `org.apache.tools.ant.Main`? >> >> Ant's core has zero dependencies and we value this property. >> >>> Picocli has support for @-files (https://picocli.info/#AtFiles ) to >> handle >>> cases where the length of the command line exceeds the OS limitations. (I >>> believe there was a recent request for this feature on the user list.) >> >> I'm pretty sure Picocli is great. >> >> Personally I wouldn't want to add it just to enable an edge case. Most >> people don't have Ant command lines long enough to even make them think >> about @-files. -propertyfile helps with the case of many -D options and >> then there always is the option to set the ANT_ARGS environment >> variable. >> >> It should be possible to provide a Picocli ArgumentProcessor that people >> who need additional features can plug into their builds and activate, >> though. >> >> Cheers >> >>Stefan >> >> - >> To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org >> For additional commands, e-mail: dev-h...@ant.apache.org >> >> -- > Matt Sicker - To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org For additional commands, e-mail: dev-h...@ant.apache.org
Re: Command line argument files
Last August there was a feature request on the Ant user mailing list to support argument files (also called @-files): https://mail-archives.apache.org/mod_mbox/ant-user/201808.mbox/%3c5d285fc05679a441acf34a90905bfa923d6c3...@gbedbp01.chp.co.uk%3e Picocli has support for @-files/argument files ( https://picocli.info/#AtFiles ) to handle cases where the length of the command line exceeds the OS limitations. This would allow ant to support command lines of arbitrary length. The other benefits (less code in the Main class, usage help message with ANSI colors, and command line autocompletion for the `ant` shell script) are “nice to have”. On Fri, Nov 16, 2018 at 4:44 Jan Matèrne (jhm) wrote: > Thank you for your suggestion. > But I think we shouldn’t add a new dependency for replacing code, that > works and was touched last time 8 months ago ('just' introducing some Java8 > stuff), then 2 years ago (no FileInput/OutputStream::new) then 4 years ago > ... > > So maintenance is no real point here. > > Jan > > > https://github.com/apache/ant/blame/master/src/main/org/apache/tools/ant/Main.java > > > > -Ursprüngliche Nachricht- > > Von: Remko Popma [mailto:remko.po...@gmail.com] > > Gesendet: Donnerstag, 15. November 2018 11:14 > > An: dev@ant.apache.org > > Betreff: Command line argument files > > > > Would there be any interest in using picocli ( > > https://github.com/remkop/picocli) as the command line parser in > > `org.apache.tools.ant.Main`? > > > > Picocli has support for @-files (https://picocli.info/#AtFiles ) to > > handle cases where the length of the command line exceeds the OS > > limitations. (I believe there was a recent request for this feature on > > the user list.) > > > > The Main class will likely become shorter and easier to maintain. > > > > As a bonus, picocli generates nice-looking help with ANSI colors and > > can generate completion scripts to get command line completion on bash > > and zsh shells. > > > > The trade-off is the additional external dependency. > > > > Picocli is relatively new (1.0 released in Aug 2017) but has growing > > adoption and is used in Groovy, Micronaut, JUnit 5 and CheckStyle. > > > > I’d be happy to provide a PR if there’s interest. > > > > Remko Popma > > > - > To unsubscribe, e-mail: dev-unsubscr...@ant.apache.org > For additional commands, e-mail: dev-h...@ant.apache.org > >
Command line argument files
Would there be any interest in using picocli ( https://github.com/remkop/picocli) as the command line parser in `org.apache.tools.ant.Main`? Picocli has support for @-files (https://picocli.info/#AtFiles ) to handle cases where the length of the command line exceeds the OS limitations. (I believe there was a recent request for this feature on the user list.) The Main class will likely become shorter and easier to maintain. As a bonus, picocli generates nice-looking help with ANSI colors and can generate completion scripts to get command line completion on bash and zsh shells. The trade-off is the additional external dependency. Picocli is relatively new (1.0 released in Aug 2017) but has growing adoption and is used in Groovy, Micronaut, JUnit 5 and CheckStyle. I’d be happy to provide a PR if there’s interest. Remko Popma