The shell script that is still a shell script

A deploy script rewritten twice — into a compiled language and back — and stable for eighteen months at a hundred and eighty lines.

  2019-2024   600 lines of bash, with functions,
              associative arrays and a retry loop
  2024        rewritten in a compiled language: typed
              errors, tests, one retry implementation
  2025        split. 180 lines of shell orchestrating
              commands, plus a small binary for the
              part with data structures in it
  2026        unchanged

the rewrite was right about the problem and wrong about
the boundary. about eighty of the six hundred lines
were genuinely a program.

Shell is the right tool for orchestrating commands and the wrong one for anything with data structures, and the boundary is crossed gradually enough that no single commit looks wrong. Eighteen months without a change is the evidence that the split landed in the right place.