STM32マイコン用のクラスライブラリである『紫』にインストール・スクリプトを書いています。
紫はライブラリと銘打っていますが、STM32Cube HALやNVICからのエラーに対するフックを持っており、また、main()関数から飛び込んでくるエントリポイントを持っています。
こういったコードの埋め込みはこれまで手でやっていました。githubへの移行に際してこの作業の詳細をドキュメント化しているとはいえ、作業自体が判じ物なので退屈であり、充実感がありません。有り体に言って苦痛です。
そこで以前浮んだアイデアを元にスクリプト化してみました。
根幹となるのはawkによるパターンマッチとアクション(コードの挿入)ですので、比較的コンパクトなスクリプトに仕上がりました。
とは言うものの、「余計なファイルを増やしたくないのでヒアドキュメントを使う」「CubeMXがターゲット毎にstartupコードのファイル名を変更する」といった事情で結構複雑なものになりました。
shellスクリプトは密度が高いですが、難読の罠に陥りがちですね。