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
provider (
runway.cfngin.providers.base.BaseProvider
) – Provider instance. (passed in by CFNgin)context (
runway.cfngin.context.Context
) – Context instance. (passed in by CFNgin)
- Keyword Arguments
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
andshell
.
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