.bzlルール内から現在のディレクトリパス全体の値を取得しようとしています。私は、次の試してみました:
ctx.host_configuration.default_shell_env.PATH
戻り"/Users/[user_name]/.rbenv/shims:/usr/local/bin:/usr/bin:/bin:...
ctx.bin_dir.path
戻りbazel-out/local-fastbuild/bin
pwd = ctx.expand_make_variables("cmd", "$$PWD", {})
戻り列$PWD
- 私はこのルールは私のために有用であるとは思わないが、ちょうどそれを使用してもよいです違う。
私が必要とするのは、Bazel .bzlルールを実行するcmdが実行されているディレクトリです。たとえば、/Users/[user_name]/git/workspace/path/to/bazel/rule.bzl
、または少なくともWORKSPACEディレクトリの前のパスの最初の部分です。私はctx.actions.run_shell()
を呼び出す前に、私は、この値を保持Bazel構成には属性がありません。この値を必要とするので
私はpwd
を使用することはできませんか?
pythonの 'coverage'コマンドから出てくる出力ファイルを宣言するために' run_shell() 'を呼び出す前に' pwd'が必要でした(Coverage.pyユーティリティは、絶対値を使ってHTMLレポートのソースファイルに名前を付けます私はあなたの答えを受け入れることができますが、絶対パスを 'run_shellの外でbazel変数に入れてもらうことができない場合は、私はあなたの答えを受け入れることができます。 () 'を返します。 – Zeitgeist
回避策を述べるために私のメッセージを編集しました。 – Laurent
もう一度おねがいしますが、私の意図は絶対パスの場所で出力を宣言することではありませんでした。私が言っていることは、Coverage.pyツールは絶対パスをとり、 '/'で '/'を切り替えて、それを生成するhtmlファイルの名前として使用するということです。すべてがまだ気密であるので、出力ファイルの名前を知りたいだけです。 – Zeitgeist