aboutsummaryrefslogtreecommitdiff
path: root/suckless/cli.md
blob: c665dfe92560abb3c66c2afdba424ed4588ddcac (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
[[!meta title="The New Command Line Manifesto"]]

Ideas:

* Let all new commands to support also machine-readable formats as inputs and
  outputs.

* Encourage some good CLI practices like `--verbose` and `--dry-run/--simulate`.

This, along with UNIX pipes and daemon interfacing, brings CLI
to a new era of services that are:

* Still based on small programs that do one thing but one thing right.
* But also are capable of interacting with each other in an uniform way.

So let them support parameters like `--json` and `--yaml` for it's I/O.

In other words, with parsers and serializers it's possible to keep an
ecosystem of UNIX microservices interacting with each other using a
consistent API.

References
----------

* [jo - JSON output from a shell](https://github.com/jpmens/jo) ([packages](https://repology.org/metapackage/jo/versions)).
* [jq](https://stedolan.github.io/jq/).