Wraps binary rules to make them more compatible with Bazel.

Currently supports only Bash as the wrapper language, not cmd.exe.

Future additions might include:

  • wrap a binary such that it sees a tty on stdin
  • manipulate arguments or environment variables
  • redirect stdout/stderr, e.g. to silence buildspam on success
  • intercept exit code, e.g. to make an “expect_fail”
  • change user, e.g. to deal with containerized build running as root, but tool requires non-root
  • intercept signals, e.g. to make a tool behave as a Bazel persistent worker

chdir_binary

Wrap a *_binary to be executed under a given working directory.

Note: under bazel run, this is similar to the --run_under "cd $PWD &&" trick, but is hidden from the user so they don't need to know about that flag.

PARAMETERS

NameDescriptionDefault Value
nameName of the rule.none
binaryLabel of an executable target to wrap.none
chdirArgument for the cd command. By default, supports using the binary under bazel run by running program in the root of the Bazel workspace, in the source tree.“$BUILD_WORKSPACE_DIRECTORY”
kwargsAdditional named arguments for the resulting sh_binary rule.none

tty_binary

Wrap a binary such that it sees a tty attached to its stdin

PARAMETERS

NameDescriptionDefault Value
nameName of the rulenone
binaryLabel of an executable target to wrapnone
runfiles_manifest_keyWORKAROUND: a lookup into the runfiles manifest for the binarynone
kwargsAdditional named arguments for the resulting sh_binary rule.none