kachick / times_kachick

`#times_kachick channel in chat` as a public repository. Personal Note and TODOs
https://github.com/kachick/times_kachick/issues?q=is%3Aissue+is%3Aclosed
6 stars 0 forks source link

2022-10-27 - asdf の cargo-make 用 plugin を作ってみた #198

Closed kachick closed 1 year ago

kachick commented 1 year ago

Ruby のプロジェクトなら Rakefile を使うけれど、そうでなければ Makefile もやむ無し。 と思ってたけど PHONY 連呼とか辛くなってきたので、ワンバイナリで動く系のタスクランナーが欲しくなって調べてみた。尚 crystal には無いので make 文化らしい。

Microsoft とかが出してる TypeScript 製、 golang に特化した物とかあるみたいだけど、やっぱ昨今人気なのは Rust 製っぽい。 日本語でぐぐると cargo-make という物の情報がやたら出てくる。新しい言語覚えず toml で書けるというのが大きな魅力なのかな。 他に just というのが大分スターを集めていて気になった、ただこっちはMake寄りの独自言語っぽいので一旦避けた。

という調査を経て、さて cargo-make 試そう! と思ったのに asdf で対応してなかった。

ヤクの毛刈り感あるけど、最近 asdf 触る機会多いのに本体とかプラグイン自体への知識が無いので、まぁいい機会かなと cargo-make 用のプラグインを書いてみた

bash なのにというか、幾つか callback 的な script の組み合わせで実現している。 これはどうなんだ?みたいなとこも有るけれど、公式 template が最初の取っ掛かりを作ってくれるのはいい感じだった。plugin の生まれた時期とメンテナンスのアクティブ度合いで、最近のポリシーに沿ってるかどうかも違うようなので、そこそこ更新されてる感じの template から始めたのはやっぱ良かった気がする。最終的には他にも良さげなプラグイン見に行ってパクったり、このプラグインの開発自体に cargo-make を使うようにしてみた

何故かLICENSEファイルに実行権限が振られたりしていた事にも気づけて面白かった。

というところでさてと本来使いたかったプロジェクトで書き出しに行ったけど、引数の好ましい取り回し方とかがまだあんま分かかってない。ドキュメント量が多くて、高機能っぽいけど読み込むのは時間かかりそう。 後は script = ではなく command = での 記述を推奨されているんだけれど、既存スクリプトとの間での移行とかがちょっと面倒に感じて script にベタ書きしかしてない。

とはいえ良さそうなツールので、しばらくは just も併用しながら感触つかんで行きたい。

kachick commented 1 year ago

ちょっと面白いコンセプトのタスクランナーとして xc というのがあった。別の markdown ファイルも指定できるけど、基本的には README.md から header を task 名としてその中のコードブロックを実行する感じなのかな 並列実行とかは厳しそうだし長くなるとドキュメントの体裁保つ事が大変そうな気はするけど、タスクの中にあまりにも大量のコード書くのはそもそも避けた方が良さそうだしこんぐらいで良いのかも・・・? https://github.com/joerdav/xc