Writing a whole toolset for a minor development task blog home

Posted Saturday, 31-Oct-2026 by Ingo Karkat

For the past few days, I've worked on addressing a set of development tasks. In true the journey is the reward manner, the actual goal was a minor consistency improvement to my scripts, which could have been done manually. But I saw potential for an automation that I could benefit from in several other, far more important uses. Unimportant tasks provide the perfect opportunity to develop skills and tools that you'll miss dearly when stuff hits the fan and you're under pressure to find a quick solution under stress.

todo.sh depview
895 +swdev find multiple separate Usage: sections in mann-all via grepDashedSections
using an sequentialgrep grep override and refactor them using LONGUSAGE prefixes
824 +tools-grep add grepSections that resolves line number matches to preceding headers,
extracts the header and then uses a HEADER:OFFSET:MATCHING-LINE output format !:1
893 +sw-shell-tools write filter for eachSplit's {M} mapping marker translation of
piece files to piece info
894 +tools-sed write sequentialgrep
	

And here's the final command-line that returned the ~60 scripts (a few results were false positives) that I had to adapt:

$ mann-all \
| GREP=sequentialgrep grepAllDashedHeaders \
--per-file --files-with-matches \
-e 'Usage: ' -E 'Usage: \|^$' -e 'Usage: ' \
| linesToArgs command -v \
| fgF 'LONGUSAGE='
/home/inkarkat/bin/ingo/configuring/bin/addDesktopEntry
[66 lines deleted]
/home/inkarkat/bin/xt/todo.sh/bin/todo-local-project
	

Let's break it down:

Ingo Karkat, 31-Oct-2026

ingo's blog is licensed under Attribution-ShareAlike 4.0 International

blog comments powered by Disqus