Thank you for doing this. CLIs are an interesting beast, and I should be 
available to contribute and/or comment next week.

~slg

-------- Original Message --------
On Jul 24, 2021, 1:14 PM, Siddhartha Kasivajhula wrote:

> Hello folks,
> If you ever have a need to write a command line script in Racket, you may be 
> interested in the package I've just put up. Normally you'd write such scripts 
> using Racket's built-in 
> [command-line](https://docs.racket-lang.org/reference/Command-Line_Parsing.html#%28form._%28%28lib._racket%2Fcmdline..rkt%29._command-line%29%29)
>  or 
> [parse-command-line](https://docs.racket-lang.org/reference/Command-Line_Parsing.html#%28def._%28%28lib._racket%2Fcmdline..rkt%29._parse-command-line%29%29)
>  form. These offer a lot of functionality, but it takes time to learn how 
> they work and the syntax is somewhat idiosyncratic. So, I've written a #lang 
> that allows you to achieve the same functionality but with more familiar and 
> extensible syntax, [#lang cli](https://docs.racket-lang.org/cli/index.html).
>
> The language is composed of 5 forms - help, flag, constraint, program, and 
> run. With these 5 forms, you get all of the functionality of the built-in 
> parse-command-line form, and with syntax that's much simpler. In fact, the 
> nontrivial forms of the language simply use Racket's normal function 
> definition syntax, so there's very little to learn -- you basically write 
> normal functions and they are implicitly wired to accept their inputs via the 
> command line.
>
> At the moment, the functionality offered is at parity with the built-in 
> forms, but there are some planned additions that would make it more powerful, 
> including [composable 
> commands](https://github.com/countvajhula/cli/issues/3), [generalized 
> constraints](https://github.com/countvajhula/cli/issues/6), and [argument 
> schemas](https://github.com/countvajhula/cli/issues/7).
>
> So if you write command line scripts, I encourage you to give it a try.
>
> I also coincidentally came across the package 
> [natural-cli](https://docs.racket-lang.org/natural-cli/index.html) by Sage 
> Gerard. Looks like it provides some interesting features and in particular 
> subcommands, which are absent in #lang cli. It very well may be that this 
> package should be leveraged for semantics in #lang cli in the future (Sage if 
> you'd like to add anything about what this package offers, please do).
> Enjoy,
> -Sid
>
> --
> You received this message because you are subscribed to the Google Groups 
> "Racket Users" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to racket-users+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> [https://groups.google.com/d/msgid/racket-users/CACQBWFnevJaRg61xLv6ayps-ihGpuUFUFEVbLTH7m929tpex3Q%40mail.gmail.com](https://groups.google.com/d/msgid/racket-users/CACQBWFnevJaRg61xLv6ayps-ihGpuUFUFEVbLTH7m929tpex3Q%40mail.gmail.com?utm_medium=email&utm_source=footer).

-- 
You received this message because you are subscribed to the Google Groups 
"Racket Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to racket-users+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/racket-users/rxdVJcMmBhW1Xtw4KZEtdl0qySeqWsbpKhW5wewaDeXGOm8PyjMWV4Q_fKXCzIitRyxDtZjRx4DtjMTi398FwMM1V3Y4lLX91urE3_N2zlE%3D%40sagegerard.com.

Reply via email to