summaryrefslogtreecommitdiffstats
path: root/lib/cli.nix
AgeCommit message (Collapse)Author
2020-01-23lib/cli: mkKey -> mkOptionName, use generators.mkValueStringDefaultProfpatsch
Let’s call them by what they are, option names. `generators.mkValueStringDefault` is a better value string renderer than plain `toString`. Also add docs to all options.
2020-01-23lib/cli: rename `renderX` options to `mkX`Profpatsch
Mirrors the naming scheme in `generators.nix`, for consistency. Also rename `key` to `k` and value to `v` to aid readability to the code structure.
2020-01-23lib/cli,lib/tests/misc: somewhat more standard formattingProfpatsch
2020-01-23lib/cli: encodeGNUCommandLine -> toGNUCommandLineShellProfpatsch
The semantic difference between `encode` and `to` is not apparent. Users are likely to confuse both functions (which leads to unexpected error messages about the wrong types). Like in `generators.nix`, all functions should be prefixed by `to`. Furthermore, converting to a string depends on the target context. In this case, it’s a POSIX shell, so we should name it that (compare `escapeShellArg` in `strings.nix`). We can later add versions that escape for embedding in e.g. python scripts or similar.
2020-01-05Factor out a `toGNUCommandLine` utilityGabriel Gonzalez
... as suggested by @roberth
2019-12-15Use a more realistic example that exercises all encodingsGabriel Gonzalez
... as suggested by @roberth This also caught a bug in rendering lists, which this change also fixes
2019-12-13Make behavior of `encodeGNUCommandLine` customizableGabriel Gonzalez
... based on feedback from @edolstra
2019-12-13Rename `renderOptions` to `encodeGNUCommandLine`Gabriel Gonzalez
... as suggested by @edolstra
2019-12-11Add `pkgs.lib.renderOptions`Gabriel Gonzalez
This adds a new utility to intelligently convert Nix records to command line options to reduce boilerplate for simple use cases and to also reduce the likelihood of malformed command lines