Gitのworking dirのrootを取得する
TL;DR: git rev-parse --show-toplevel
Cのプロジェクトで、language serverのために compile_commands.json を作るのだが、
ライブラリーのレポジトリだったりすると、makeするのはrootディレクトリではなくて、examples以下だったりする。
そこでmakeするけど、 compile_commands.json はgitのrootにおきたい、みたいな時に
bear -a -o ../../compile_commands.json make
みたいにしてたんだけど、ほかのプロジェクトでこの履歴をそのまま使うとこまることもある。 gitのrootをコマンドラインで取得できれば、これを共通のコマンドにできそう。
というわけで調べたら git rev-parse --show-toplevel で出来た。
さっきのコマンドは
bear -a -o (git rev-parse --show-toplevel)/compile_commands.json make
みたいにすればだいたいどこでもつかえるものに。[1]