2022-05-28

F#でコマンドレットを書いてる

以前 F# で PowerShell コマンドレットを書き始めたと書いた。

ひと月くらいかけて主に休みの日にちょいちょい書き進めてきて、最近最低限動くようになったので public repo にした。 krymtkts/pocof

まだ激ショボな機能しかない。 プロパティを指定してフィルタリングするとか、フィルタリングした見た目をこれまたテーブルフォーマットにするとか、 PowerShell ならではの良さをまだ全然作り込めてない。

さっぱり作り方がわからん Format-Table とか -like とか PowerShell のクラスをそのまま使いたい気分。無理やったら組むねんけど。

ls | pocof したら Terminal-Icons で鮮やかになったままフィルタリングされてほしいのよなー。 この辺が組み込めたら、 PowerShell Gallery で公開したい。

現状正規表現でのフィルタリングくらいしかまともに使えるものがなく亀速な進捗だけど、Cmdlet を書いたり F# で書いたのも初めてだったから、楽しく取り組めた。

前にも書いた通り、これは poco の多言語フォークなんやけど、その動機としては poco の未実装だったり使いにくいところが起因してツール自体をあまり使いこなせてなかったところがある。 自分自身あまりツールの使い込みは得意じゃなくて、なんなら自分流にアレンジできるタイプのツールしか使いこなせない。

DIY キーボードとかまさにその典型例なんやけど、キーバインディングが自分の制御下に置かれた途端ブラインドタッチができるようになったりしたので、何かと自分用に手を加えないといけないんだろう。

でもこれで poco というか pocof は自分の制御下に置いたのでなんか色々試してみたいお気持ち。

F# の書き心地に関しては、まだ慣れない点もあれど結構気に入ってる。 else は矯正してほしいところやけど。

着手前は試しにコンピュート式書いてみたいなーとか考えてたが、いまんとこ使おうと思えば使えるけど敢えて使うほどでもない感じで、使い所ない。 大したことやってないからパターンマッチや高階関数使ってるだけでもサクサクできる。 .NET 自体かなり久しぶりなこと(PowerShell つかってるけど全然 .NET に踏み込んでない...)と、 .NET と F# の世界の境界がまだ自分の中で曖昧で、そのへんは書きながら学んでいきたいなーという感じ。

何にせよ趣味プロのちょうどいいネタを見つけた。当分はこれで遊ぶ。