penrun

package
v0.0.0-...-65db051 Latest Latest
Warning

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

Go to latest
Published: Jan 4, 2024 License: MIT Imports: 15 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// Successful exit
	ExitOK = 0

	// The command was used incorrectly, e.g., with the
	// wrong number of arguments, a bad flag, a bad syntax
	// in a parameter, etc.
	ExitUsage = 64

	// The input data was incorrect in some way.  This
	// should only be used for user's data and not system
	// files.
	ExitDataErr = 65

	// An input file (not a system file) did not exist or
	// was not readable.  This could also include errors
	// like "No message" to a mailer (if it cared to
	// catch it).
	ExitNoInput = 66

	// The user specified did not exist.  This might be
	// used for mail addresses or remote logins.
	ExitNoUser = 67

	// The host specified did not exist.  This is used in
	// mail addresses or network requests.
	ExitNoHost = 68

	// A service is unavailable.  This can occur if a
	// support program or file does not exist. This can also
	// be used as a catchall message when something you
	// wanted to do doesn't work, but you don't know why.
	ExitUnavailable = 69

	// An internal software error has been detected.  This
	// should be limited to non-operating system related
	// errors as possible.
	ExitSoftware = 70

	// An operating system error has been detected.  This
	// is intended to be used for such things as "cannot
	// fork", "cannot create pipe", or the like.  It
	// includes things like getuid returning a user that
	// does not exist in the passwd file.
	ExitOSErr = 71

	// Some system file (e.g., /etc/passwd, /var/run/utmp,
	// etc.) does not exist, cannot be opened, or has some
	// sort of error (e.g., syntax error).
	ExitOSFile = 72

	// A (user specified) output file cannot be created.
	ExitCantCreat = 73

	// An error occurred while doing I/O on some file.
	ExitIOErr = 74

	// Temporary failure, indicating something that is not
	// really an error.  In sendmail, this means that a
	// mailer (e.g.) could not create a connection, and
	// the request should be reattempted later.
	ExitTempfail = 75

	// The remote system returned something that was
	// "not possible" during a protocol exchange.
	ExitProtocol = 76

	// You did not have sufficient permission to perform
	// the operation.  This is not intended for file system
	// problems, which should use `NOINPUT` or `CANTCREAT`,
	// but rather for higher level permissions.
	ExitNoPerm = 77

	// Something was found in an unconfigured or misconfigured state.
	ExitConfig = 78
)
View Source
const ConfigFileName = "penrun.toml"

Variables

This section is empty.

Functions

func FindConfigFile

func FindConfigFile(path string) (string, error)

Types

type Config

type Config struct {
	CLI           []string `kong:"arg,passthrough,help='Command to invoke'"`
	ArtifactsDir  string   `kong:"short='d',help='Set artifacts_dir to this directory'"`
	ArtifactsBase string   `kong:"short='b',help='Set artifacts_base where the artifacts hierarchy (including LATEST) will be created'"`
	Batched       bool     `kong:"short='B',help='Run several commands in parallel'"`
	PreHook       string   `kong:"help='Shell script that runs before the command'"`
	PostHook      string   `kong:"help='Shell script that runs after the command'"`
}

func ParseConfigFile

func ParseConfigFile(path string) (*Config, error)

type FinishedRun

type FinishedRun struct {
	ArtifactsDir  string        `json:"artifacts_dir"`
	CLI           []string      `json:"cli"`
	CLIString     string        `json:"cli_string"`
	CWD           string        `json:"cwd"`
	ExitCode      int           `json:"exit_code"`
	StartTime     time.Time     `json:"start_time"`
	EndTime       time.Time     `json:"end_time"`
	Duration      time.Duration `json:"duration"`
	Environ       []string      `json:"environ"`
	Hostname      string        `json:"hostname"`
	PenrunVersion string        `json:"penrun_version"`
}

func RunCommand

func RunCommand(config *Config) (*FinishedRun, error)

func (*FinishedRun) Success

func (fr *FinishedRun) Success() bool

type TestRun

type TestRun struct {
	*Config
	// contains filtered or unexported fields
}

func NewTestRun

func NewTestRun(config *Config) *TestRun

func (*TestRun) Run

func (tr *TestRun) Run() (*FinishedRun, error)

Jump to

Keyboard shortcuts

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