App::pmgrepというモジュールを書いてみた

特定のディストリビューション*1内のモジュールを
文字列検索したい要件があったので作ってみました。
標準コマンドを駆使すれば出来るとは思いますが、
モジュールにしたらそこそこ便利ではないかなーと。

github

https://github.com/toritori0318/p5-App-pmgrep
App::pmuninstallを参考にさせていただきました。

概要

モジュール名と検索文字列を指定すると
packlistの一覧からファイルを抽出しgrep*2の結果を表示します。
現時点ではローカル上のみ対応です。

使い方

pm-grep <検索文字列> <モジュール名>

詳しくは --help 参照。

スクリーンショット

Net::Amazon::S3 に含まれるモジュールから push という文字列を検索。

vimから使う

pmgrep.vim というプラグインも書いてみました。
https://github.com/toritori0318/vim-pmgrep

こんな感じでquickfixされるので
モジュールにもジャンプできたり。

スクリーンショット

Net::Amazon::S3 に含まれるモジュールから push という文字列を検索。

Todoなど

  • systemしてるところはApp::Ackのサブルーチンを直接呼び出したほうがいいかも
  • skip-podしたときのファイル名がtempファイル名になってしまっているのでどうにかして直したい
  • skip-podのロジックはこれだとダメな例もありそうなので見直す
  • vimから使う時に補完できるように

*1:という表現でいいのかな?

*2:ack