runway.cfngin.hooks.command module

Command hook.

runway.cfngin.hooks.command.run_command(provider, context, command, capture=False, interactive=False, ignore_status=False, quiet=False, stdin=None, env=None, **kwargs)[source]

Run a custom command as a hook.

Parameters
Keyword Arguments
  • command (Union[str, List[str]]) – Command(s) to run.

  • capture (bool) – If enabled, capture the command’s stdout and stderr, and return them in the hook result. (default: False)

  • interactive (bool) – If enabled, allow the command to interact with stdin. Otherwise, stdin will be set to the null device. (default: False)

  • ignore_status (bool) – Don’t fail the hook if the command returns a non-zero status. (default: False)

  • quiet (bool) – Redirect the command’s stdout and stderr to the null device, silencing all output. Should not be enabled if capture is also enabled. (default: False)

  • stdin (Optional[str]) – String to send to the stdin of the command. Implicitly disables interactive.

  • env (Optional[Dict[str, str]]) – Dictionary of environment variable overrides for the command context. Will be merged with the current environment.

  • **kwargs (Any) – Any other arguments will be forwarded to the subprocess.Popen function. Interesting ones include: cwd and shell.

Examples

pre_build:
  command_copy_environment:
    path: runway.cfngin.hooks.command.run_command
    required: true
    enabled: true
    data_key: copy_env
    args:
      command: ['cp', 'environment.template', 'environment']
  command_git_rev_parse:
    path: runway.cfngin.hooks.command.run_command
    required: true
    enabled: true
    data_key: get_git_commit
    args:
      command: ['git', 'rev-parse', 'HEAD']
      cwd: ./my-git-repo
      capture: true
  command_npm_install:
    path: runway.cfngin.hooks.command.run_command
    args:
      command: '`cd $PROJECT_DIR/project; npm install`'
      env:
        PROJECT_DIR: ./my-project
        shell: true