shell

package
v0.71.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Dec 20, 2024 License: MIT Imports: 27 Imported by: 43

Documentation

Overview

Package shell provides functions to run shell commands and Terraform commands.

Index

Constants

View Source
const (
	TerraformCommandContextKey ctxKey = iota
	RunCmdCacheContextKey
	DetailedExitCodeContextKey
)
View Source
const (
	DetailedExitCodeError = 1
)
View Source
const SignalForwardingDelay = time.Second * 15

SignalForwardingDelay is the time to wait before forwarding the signal to the subcommand.

The signal can be sent to the main process (only `terragrunt`) as well as the process group (`terragrunt` and `terraform`), for example: kill -INT <pid> # sends SIGINT only to the main process kill -INT -<pid> # sends SIGINT to the process group Since we cannot know how the signal is sent, we should give `tofu`/`terraform` time to gracefully exit if it receives the signal directly from the shell, to avoid sending the second interrupt signal to `tofu`/`terraform`.

Variables

This section is empty.

Functions

func ContextWithDetailedExitCode added in v0.69.1

func ContextWithDetailedExitCode(ctx context.Context, detailedExitCode *DetailedExitCode) context.Context

ContextWithDetailedExitCode returns a new context containing the given DetailedExitCode.

func ContextWithTerraformCommandHook added in v0.56.4

func ContextWithTerraformCommandHook(ctx context.Context, fn RunShellCommandFunc) context.Context

func ExplainError added in v0.45.5

func ExplainError(err error) string

ExplainError will try to explain the error to the user, if we know how to do so.

func GitLastReleaseTag added in v0.54.0

func GitLastReleaseTag(ctx context.Context, opts *options.TerragruntOptions, gitRepo *url.URL) (string, error)

GitLastReleaseTag fetches git repository last release tag.

func GitRepoTags added in v0.54.0

func GitRepoTags(ctx context.Context, opts *options.TerragruntOptions, gitRepo *url.URL) ([]string, error)

GitRepoTags fetches git repository tags from passed url.

func GitTopLevelDir added in v0.33.0

func GitTopLevelDir(ctx context.Context, terragruntOptions *options.TerragruntOptions, path string) (string, error)

GitTopLevelDir fetches git repository path from passed directory.

func LastReleaseTag added in v0.66.7

func LastReleaseTag(tags []string) string

LastReleaseTag returns last release tag from passed tags slice.

func PromptUserForInput

func PromptUserForInput(ctx context.Context, prompt string, terragruntOptions *options.TerragruntOptions) (string, error)

PromptUserForInput prompts the user for text in the CLI. Returns the text entered by the user.

func PromptUserForYesNo

func PromptUserForYesNo(ctx context.Context, prompt string, terragruntOptions *options.TerragruntOptions) (bool, error)

PromptUserForYesNo prompts the user for a yes/no response and return true if they entered yes.

func RunShellCommand

func RunShellCommand(ctx context.Context, opts *options.TerragruntOptions, command string, args ...string) error

RunShellCommand runs the given shell command.

func RunShellCommandWithOutput added in v0.17.0

func RunShellCommandWithOutput(
	ctx context.Context,
	opts *options.TerragruntOptions,
	workingDir string,
	suppressStdout bool,
	needsPTY bool,
	command string,
	args ...string,
) (*util.CmdOutput, error)

RunShellCommandWithOutput runs the specified shell command with the specified arguments.

Connect the command's stdin, stdout, and stderr to the currently running app. The command can be executed in a custom working directory by using the parameter `workingDir`. Terragrunt working directory will be assumed if empty string.

func RunTerraformCommand added in v0.12.10

func RunTerraformCommand(ctx context.Context, opts *options.TerragruntOptions, args ...string) error

RunTerraformCommand runs the given Terraform command.

func RunTerraformCommandWithOutput added in v0.17.0

func RunTerraformCommandWithOutput(ctx context.Context, opts *options.TerragruntOptions, args ...string) (*util.CmdOutput, error)

RunTerraformCommandWithOutput runs the given Terraform command, writing its stdout/stderr to the terminal AND returning stdout/stderr to this method's caller

Types

type DetailedExitCode added in v0.69.1

type DetailedExitCode struct {
	Code int
	// contains filtered or unexported fields
}

DetailedExitCode is the TF detailed exit code. https://opentofu.org/docs/cli/commands/plan/

func DetailedExitCodeFromContext added in v0.69.1

func DetailedExitCodeFromContext(ctx context.Context) *DetailedExitCode

DetailedExitCodeFromContext returns DetailedExitCode if the give context contains it.

func (*DetailedExitCode) Get added in v0.69.1

func (coder *DetailedExitCode) Get() int

Get returns exit code.

func (*DetailedExitCode) Set added in v0.69.1

func (coder *DetailedExitCode) Set(newCode int)

Set sets the newCode if the previous value is not 1 and the new value is greater than the previous one.

type RunShellCommandFunc added in v0.56.4

type RunShellCommandFunc func(ctx context.Context, opts *options.TerragruntOptions, args cli.Args) (*util.CmdOutput, error)

RunShellCommandFunc is a context value for `TerraformCommandContextKey` key, used to intercept shell commands.

func TerraformCommandHookFromContext added in v0.56.4

func TerraformCommandHookFromContext(ctx context.Context) RunShellCommandFunc

TerraformCommandHookFromContext returns `RunShellCommandFunc` from the context if it has been set, otherwise returns nil.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL