shell

package
v0.5.3 Latest Latest
Warning

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

Go to latest
Published: Apr 16, 2024 License: MPL-2.0 Imports: 2 Imported by: 4

Documentation

Overview

Package shell defines configuration fields that are common to many different kinds of shell. For example, this common configuration is imported by the "shell", "shell-local", and "powershell" provisioners. This provides consistency in the user experience and prevents provisioner maintainers from having to reimplement common useful functions across various environments.

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type ErrorInvalidExitCode

type ErrorInvalidExitCode struct {
	Code    int
	Allowed []int
}

func (*ErrorInvalidExitCode) Error

func (e *ErrorInvalidExitCode) Error() string

type Provisioner

type Provisioner struct {
	common.PackerConfig `mapstructure:",squash"`

	// An inline script to execute. Multiple strings are all executed
	// in the context of a single shell.
	Inline []string

	// The local path of the shell script to upload and execute.
	Script string

	// An array of multiple scripts to run.
	Scripts []string

	// Valid Exit Codes - 0 is not always the only valid error code!  See
	// http://www.symantec.com/connect/articles/windows-system-error-codes-exit-codes-description
	// for examples such as 3010 - "The requested operation is successful.
	ValidExitCodes []int `mapstructure:"valid_exit_codes"`

	// An array of environment variables that will be injected before your
	// command(s) are executed. Any duplicate vars will be overridden by `env`.
	Vars []string `mapstructure:"environment_vars"`

	// An map of environment variables that will be injected before your
	// command(s) are executed. Any duplicate `environment_vars` will be
	// overridden by `env`.
	Env map[string]string `mapstructure:"env"`

	// This is used in the template generation to format environment variables
	// inside the `ExecuteCommand` template.
	EnvVarFormat string `mapstructure:"env_var_format"`
}

Provisioner contains common fields to all shell provisioners. It is provided as a convenience to encourage plugin developers to consider implementing these options, which we believe are valuable for all shell-type provisioners. It also helps guarantee that option names for similar options are the same across the various shell provisioners. Validation and defaulting are left to the maintainer because appropriate values and defaults will be different depending on which shell is used. To use the Provisioner struct, embed it in your shell provisioner's config using the `mapstructure:",squash"` struct tag. Examples can be found in the HashiCorp-maintained "shell", "shell-local", "windows-shell" and "powershell" provisioners.

func (*Provisioner) ValidExitCode

func (p *Provisioner) ValidExitCode(code int) error

type ProvisionerRemoteSpecific

type ProvisionerRemoteSpecific struct {
	// If true, the script contains binary and line endings will not be
	// converted from Windows to Unix-style.
	Binary bool

	// The remote path where the local shell script will be uploaded to.
	// This should be set to a writable file that is in a pre-existing directory.
	// This defaults to remote_folder/remote_file
	RemotePath string `mapstructure:"remote_path"`

	// The command used to execute the script. The '{{ .Path }}' variable
	// should be used to specify where the script goes, {{ .Vars }}
	// can be used to inject the environment_vars into the environment.
	ExecuteCommand string `mapstructure:"execute_command"`
}

Jump to

Keyboard shortcuts

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