ansible の vault.yml が暗号化されていなかったらコミットを拒否する pre-commit hook を書いていたが、地獄だった
主にシェル由来の地獄で、 NUL を変数中に保持できないとか、かといってパイプで流そうにも xargs 内でさらにパイプ使おうとすると {} がそのまま展開されてしまうのでエスケープ挟まないとマズいとか、それが面倒だからといって | while read -d$'\0' しようにも read -d で NUL を与えてちゃんと動かない環境が存在するとか……
ネイティブな配列型がないのが根本的に駄目
素直に python なり何なりで書け、それはマジでそう
なんなら自分用なので Rust でもいいくらい (まあさすがにそこまでするよりは Ruby 書くけど)