- External reference: https://github.com/clk-project/clk
A tool I made to help me automatize command line stuff when working with poor command line tools, based on click for the most part.
It tries to fit the user workflow as far as possible. One of its main principles is shape your tools, don’t let your tools shape you.
See the clk 101.
a TDD way of thinking
clk is made so that you can incrementally create your custom commands.
Start with something small, like a simple alias or a shell script. Try it out for some time, then make it right. And finally continue, creating new aliases, shell commands or python commands.
Because, let’s face it, you almost never know before hand what would look like the awesome CLI you dream of doing. With clk, every step is usable so that you can assess whether you feel you are doing things right.
Chances are that at some point, you will want to have the full application in python because of the great features it provides, but you can totally work with a hybrid of shell and python commands until then.
Therefore, take your time and separate the steps of making it work and the step of making it elegant.
To me, it feels like TDD, in which the tests are your real life use cases. It is the process of doing very small ad-hoc increments, see how that feels and then refactor to make it elegant.
Notes linking here
- all commitments have deadline
- clk 101
- clk and cognitive load
- clk and contextual polymorphism
- clk android backup
- clk bash customcommand
- clk basic bash argument format
- clk built in table formatter
- clk command that define aliases
- clk config
- clk customcommands
- clk encourage de scripter par abstraction
- clk extension
- clk flowdep
- clk git records
- clk k8s
- clk levels provide sensible locations to put configuration
- clk log levels
- clk maybe list
- clk meaningful completion
- clk parameters
- clk path
- clk personal feature extension
- clk plugins
- clk project
- clk provides a bunch of everyday usage lib
- clk python customcommand
- clk sensible default
- clk shared personal extension
- clk two flavors
- clk tzc
- clk, because your mileage may vary
- clk, why not doing parsing in customcommands
- create your own command on top of clk
- defining the API of clk
- how to share data using a local kubernetes cluster (blog)
- polymorphic command line interface (in clk)
- sonar play analysis in the past
- use the installed default command line clk
- yak shaving is ok, as long as the path is worthwhile