Bashスクリプトの現在のコードワークスペース名を取得する方法はありますか?

Bashスクリプトの現在のコードワークスペース名を取得する方法はありますか?

Linux環境では、ディレクトリの下にgitリポジトリを作成します。 /myspace/darshan/repositories

だから、私が取り組む機能やバグごとに別々のgitリポジトリがあります。

次のような他のリポジトリで同じ共通のタスクがいくつかあります。

building an image

copy an image

going to my component directoryなど

リポジトリ名のルートを除くと、すべて同じパスにあります。つまり、ビルドイメージが - に位置していると仮定します。 /myspace/darshan/repositories/<feature>/bin/sys/

リポジトリ間で変更される唯一のものはディレクトリです。

上記のタスクのいくつかのエイリアスを作成したいと思います。

build

cp_image

goto_comp

私はワークスペースの深さと私が属しているワークスペースに関係なく、これらすべてのエイリアスが機能したいと思います。

この設定をどのように作成できますか?

答え1

git rev-parse --show-toplevel1つの可能な方法は、現在のリポジトリのデフォルトディレクトリを出力するためにこれを使用することです。したがって、gitリポジトリのサブディレクトリは$(git rev-parse --show-toplevel)そのリポジトリのデフォルトディレクトリになります

cd $(git rev-parse --show-toplevel)/bin/sys

bin/sys常に現在のリポジトリのサブディレクトリに移動します。

Gitリポジトリの外部で使用するときは注意してください。実際にそのリポジトリにあることをまず確認する必要があります。git rev-parse --show-toplevelGitリポジトリの外部で実行すると、ゼロ以外の終了コードで終了するため、使用できます。

関連情報