Получить базовый каталог для объявленных файлов - PullRequest
0 голосов
/ 10 октября 2019

Иногда в моих правилах Bazel мне нужно запустить инструмент, который производит кучу файлов, но записывает их в выходной каталог, и путь к каталогу должен использоваться в качестве аргумента. Таким образом, я получил следующий шаблон:

out_dir = "{}_out".format(ctx.label)
out_files = []
for file in ctx.files.srcs:
  file_path = # ... construct file path 
  o = ctx.actions.declare_file("{}/{}".format(out_dir, file_path))
  out_files.append(o)

# Now we need to fetch first file and strip out file path part
out = out_files[0].path
out = out[0:(out.find(out_dir) + len(out_dir)]

Но он кажется очень многословным и уродливым, и я не могу найти хорошего способа построить этот путь с помощью атрибутов правила или чего-то доступного на этапе анализа. Есть ли простой способ добиться этого?

...