Hacker News new | past | comments | ask | show | jobs | submit login

I has a load of fun when I discovered this too, but eventually realised that a good cli app has focus, sensible use of opts, a succinct -h, reliable exit codes and above all easily parsed output on stdout.



I am all about sensible options, reliable exit codes, and easily parsed output on stdout--but easily parsed output on stdout when it isn't a tty is different from what you show a person when it is a tty.


It's also fairly straightforward to strip escape codes if you need to using sed or similar[0], and there probably already exists a tool that will do just that specifically and more robustly than my example.

[0] Here's a basic example I wrote in Ruby: https://github.com/mike-bourgeous/mb-util/blob/5616cc4ce6218...

    str.gsub(/\e\[[^A-Za-z~]*[A-Za-z~]/, '')


I just select the styling depending on what stdout/stderr are. If output is not going to a terminal, styling strings are empty.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: