collie
collie copied to clipboard
Command line interface library in Idris
Commands can expect environment variables to be set, and these are available to the handler. The environment variables can be typed, and will be parsed before being handed to the...
Using a large number of subcommands seems to give the type checker trouble, and results in very long + high memory usage compile times. For example, consider the program below...
Rather than indexing commands by just their name, we index them by their full path. This gives us an easy access to said path e.g. when printing the usage information...
At the moment we only guarantee that there are no duplicates but we should replace the `String` type with one with stronger guarantees (using `fromString` to provide backwards compatible surface...
Pros: 1. A function `handle : cmd ~:> IO ()` rather than a """record""" 2. Coverage checking works Cons: 1. It's hijacking the `fromString` mechanism 2. It'd be nicer to...
Thanks for this great start to a CLI library! Currently, the usage output does not explicitly give an indication of the argument a command takes. It would be nice to...
Cf. how it's implemented in Idris: https://github.com/idris-lang/Idris2/blob/main/src/Idris/SetOptions.idr#L187-L189