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]