command.run_command

Hook Path

runway.cfngin.hooks.command.run_command

Run a shell custom command as a hook.

Args

command: Union[List[str], str]

Command(s) to run.

capture: Optional[bool] = False

If enabled, capture the command’s stdout and stderr, and return them in the hook result.

interactive: Optional[bool] = False

If enabled, allow the command to interact with stdin. Otherwise, stdin will be set to the null device.

ignore_status: Optional[bool] = False

Don’t fail the hook if the command returns a non-zero status.

quiet: Optional[bool] = False

Redirect the command’s stdout and stderr to the null device, silencing all output. Should not be enabled if capture is also enabled.

stdin: Optional[str] = None

String to send to the stdin of the command. Implicitly disables interactive.

env: Optional[Dict[str, str]] = None

Dictionary of environment variable overrides for the command context. Will be merged with the current environment.

**kwargs

Any other arguments will be forwarded to the subprocess.Popen function. Interesting ones include: cwd and shell.

Example

pre_deploy:
  - path: runway.cfngin.hooks.command.run_command
    required: true
    enabled: true
    data_key: copy_env
    args:
      command: ['cp', 'environment.template', 'environment']
  - 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
  - path: runway.cfngin.hooks.command.run_command
    args:
      command: '`cd $PROJECT_DIR/project; npm install`'
      env:
        PROJECT_DIR: ./my-project
        shell: true