hitode909の日記

以前はプログラミング日記でしたが、今は子育て日記です

gitにlib/**を渡してシェルで展開しても文字列で'lib/**'を渡しても展開して動いてくれるのどうやってるのかなと見た

App::PRTというPerlのリファクタリングツールを作ってるのだけど、起動時に対象のファイルを指定しようと、lib/**を渡すか、'lib/**'を渡すかで挙動がちがう。前者はシェルが展開して渡してくれるけど、後者は'lib/**'という文字列が引数として渡ってくる。
Gitを使ってるとここを意識したことなかったな、と見てみたら、wildmatch.cに自前でワイルドカードの展開が実装されていた。
github.com

よくできてるな、いつからあるのかな、と見たら2012年にrsyncからコピペで輸入されていた。その後は独自の進化を遂げている模様。たしかにrsyncやgitはワイルドカードを扱うことが多そう。
github.com

App::PRTとしてはglobを展開するべきなのか?という話の一環で調べていたのだけど、ほしくなったら作ればいいでしょう、ということでissueはcloseした。最近、cxw42さんという方がちょこちょこPull Requestを送ってくださってる。ありがたい。
github.com