もがき系プログラマの日常

もがき系エンジニアの勉強したこと、日常のこと、気になっている技術、備忘録などを紹介するブログです。

grepで対象が見つからなかったときに終了させたくない

はじめに

こんにちは。 今日も簡単な備忘録です。

最近案件で複数のレポジトリ(10個)を扱うプロジェクトを触っています。

ただ、ジョインしたのはつい最近でまだまだ各レポジトリのことを知りません。

レポジトリのボリュームもそれぞれなかなかのものです。

なので「ここの文言〇〇から✗✗に変更してください」

と言われても探すのが大変。

プロジェクトごとに毎回git grepとか打つのはとても面倒。

なので Makefile作って make grep ○○ とかで全プロジェクト git grepしたいと思って作ったんですが、 grep は見つからなかったとき エラーステータスを返してきます。

これをなんとかエラーステータス受け取らず全プロジェクト再帰的に探し続けてほしい。

参考

qiita.com

本題

簡単なので、結果だけ載せときます。

STRING=string
BASE_DIR=/Users/kojirock/projects

grep:
        cd $(BASE_DIR)/repo_1 && git grep $(STRING) || exit $$(($$? - 1))
        cd $(BASE_DIR)/repo_2 && git grep $(STRING) || exit $$(($$? - 1))
        cd $(BASE_DIR)/repo_3 && git grep $(STRING) || exit $$(($$? - 1))
        cd $(BASE_DIR)/repo_4 && git grep $(STRING) || exit $$(($$? - 1))
        cd $(BASE_DIR)/repo_5 && git grep $(STRING) || exit $$(($$? - 1))
        cd $(BASE_DIR)/repo_6 && git grep $(STRING) || exit $$(($$? - 1))
        cd $(BASE_DIR)/repo_7 && git grep $(STRING) || exit $$(($$? - 1))
        cd $(BASE_DIR)/repo_8 && git grep $(STRING) || exit $$(($$? - 1))
        cd $(BASE_DIR)/repo_9 && git grep $(STRING) || exit $$(($$? - 1))
        cd $(BASE_DIR)/repo_10 && git grep $(STRING) || exit $$(($$? - 1))

exit $$(($$? - 1)) の部分で無視してくれています。

終わりに

レポジトリ多すぎ、、、

簡単ですが以上です。