私の職場では、誰かが 10 ~ 20 個のプロジェクトのいずれかの SVN リポジトリにファイルをチェックインしようとするたびに、Unix マシンで実行される Perl スクリプトが 1 つあります。
各プロジェクトには、誰かが何かをチェックインしたときに SVN が自動的に実行する「pre-commit」と呼ばれるファイルを含む独自の「Hooks」フォルダーがあります。ただし、「事前コミット」ファイルは、実際にはすべてのプロジェクトに共通の 1 つの中央 Perl スクリプトへのシンボリック リンクであるため、Perl スクリプトを変更する必要がある場合でも、すべてのプロジェクトで変更を行う必要はありません。
したがって、私の問題は次のとおりです。これらの各プロジェクトの「フック」ディレクトリに、そのプロジェクトに固有の設定を含むテキスト ファイルを配置する必要があります。したがって、10 ~ 20 個の設定ファイル (プロジェクトごとに 1 つ) がそれぞれの「フック」ディレクトリに存在します。
問題は、これらのテキスト ファイルを Perl スクリプトで開いて読み取る必要があることですが、Perl にファイルの場所を知らせる際に問題が発生しています。スクリプトがどこから実行されているかを示すはずの $0 パラメータを使用してみましたが、シンボリック リンクであるため、「ディレクトリではありません」と表示され、スクリプトが終了します。テキスト ファイルを見つけることができるように、"hooks" ディレクトリのパスを取得する必要があります。