shell

package
v0.55.1 Latest Latest
Warning

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

Go to latest
Published: Jul 31, 2023 License: Apache-2.0 Imports: 20 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// DryRunVariableName specifies the environment variable used within shell script to detect if we are in dryrun mode
	DryRunVariableName = "DRY_RUN"
	// CurrentStageVariableName is the environment variable containing the current pipeline stage such as source, condition, target
	CurrentStageVariableName = "UPDATECLI_PIPELINE_STAGE"
)
View Source
const (
	WINOS string = "windows"
)

Variables

View Source
var (
	MappingSpecChangedIf = map[string]interface{}{
		"console/output": nil,
		"exitcode":       &exitcode.Spec{},
		"file/checksum":  &checksum.Spec{},
	}
)

Functions

This section is empty.

Types

type Environment added in v0.28.0

type Environment struct {
	// Name defines the environment variable name
	Name string `yaml:",omitempty" jsonschema:"required"`
	// Value defines the environment variable value
	Value string `yaml:",omitempty"`
}

Environment is a struct containing information for an environment variable such as its name and its value

func (*Environment) Load added in v0.28.0

func (e *Environment) Load() error

Load updates the environment value based on Updatecli environment variables, if the value is not defined yet

func (Environment) String added in v0.28.0

func (e Environment) String() string

func (Environment) Validate added in v0.28.0

func (e Environment) Validate() error

Validate ensures that required parameter are set

type Environments added in v0.28.0

type Environments []Environment

func (*Environments) Load added in v0.28.0

func (e *Environments) Load() error

Load updates all environment value based on Updatecli environment variables, at the condition that the value is not defined yet

func (Environments) ToStringSlice added in v0.28.0

func (e Environments) ToStringSlice() []string

ToStringSlice return all environment variable key=value as a slice of string

func (Environments) Validate added in v0.28.0

func (e Environments) Validate() error

Validate ensures that we don't have duplicated value for a variable and that the user is not attempting to override the DRY_RUN reserved variable.

type ErrEmptyCommand

type ErrEmptyCommand struct{}

func (*ErrEmptyCommand) Error

func (e *ErrEmptyCommand) Error() string

type ExecutionFailedError

type ExecutionFailedError struct{}

func (*ExecutionFailedError) Error

func (e *ExecutionFailedError) Error() string

type MockCommandExecutor

type MockCommandExecutor struct {
	GotCommand command
	Result     commandResult
	Err        error
}

MockCommandExecutor is a stub implementation of the `commandExecutor` interface to be used in our test suite. It stores the received `command` and returns the preconfigured `result` and `err`.

func (*MockCommandExecutor) ExecuteCommand

func (mce *MockCommandExecutor) ExecuteCommand(cmd command) (commandResult, error)

type Shell

type Shell struct {
	// contains filtered or unexported fields
}

Shell defines a resource of kind "shell"

func New

func New(spec interface{}) (*Shell, error)

New returns a reference to a newly initialized Shell object from a ShellSpec or an error if the provided ShellSpec triggers a validation error.

func (*Shell) Changelog

func (s *Shell) Changelog() string

Changelog returns the changelog for this resource, or an empty string if not supported

func (*Shell) Condition

func (s *Shell) Condition(source string, scm scm.ScmHandler, resultCondition *result.Condition) error

Condition tests if the provided command (concatenated with the source) is executed with success

func (*Shell) InitChangedIf added in v0.44.0

func (s *Shell) InitChangedIf() error

func (*Shell) Source

func (s *Shell) Source(workingDir string, resultSource *result.Source) error

Source returns the stdout of the shell command if its exit code is 0 otherwise an error is returned with the content of stderr

func (*Shell) Target

func (s *Shell) Target(source string, scm scm.ScmHandler, dryRun bool, resultTarget *result.Target) error

type Spec

type Spec struct {
	// command specifies the shell command to execute by Updatecli
	Command string `yaml:",omitempty" jsonschema:"required"`
	// environments allows to pass environment variable(s) to the shell script. By default no environment variable are shared.
	Environments Environments `yaml:",omitempty"`
	// ChangedIf defines how to interpreted shell command success criteria. What a success means, what an error means, and what a warning would mean
	ChangedIf SpecChangedIf `yaml:",omitempty" json:",omitempty"`
	// Shell specifies which shell interpreter to use. Default to powershell(Windows) and "/bin/sh" (Darwin/Linux)
	Shell string `yaml:",omitempty"`
	// workdir specifies the working directory path from where to execute the command. It defaults to the current context path (scm or current shell). Updatecli join the current path and the one specified in parameter if the parameter one contains a relative path.
	WorkDir string `yaml:",omitempty"`
}

Spec defines a specification for a "shell" resource parsed from an updatecli manifest file

type SpecChangedIf added in v0.44.0

type SpecChangedIf struct {
	// Kind specifies the success criteria kind, accepted answer ["console/output","exitcode","file/checksum"]
	Kind string `yaml:",omitempty"`
	// Spec specifies the parameter for a specific success criteria kind
	Spec interface{} `yaml:",omitempty"`
}

func (SpecChangedIf) JSONSchema added in v0.44.0

func (SpecChangedIf) JSONSchema() *jschema.Schema

JSONSchema implements the json schema interface to generate the "condition" jsonschema.

type Successer added in v0.44.0

type Successer interface {
	PreCommand(workingDir string) error
	PostCommand(workingDir string) error
	SourceResult(resultSource *result.Source) error
	ConditionResult() (bool, error)
	TargetResult() (bool, error)
}

Directories

Path Synopsis
success

Jump to

Keyboard shortcuts

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