Documentation ¶
Index ¶
- Variables
- func BatchEscape(str string) string
- func GetExitCode(err error) int
- func IsExitError(err error) bool
- func LookPath(file string, path string, fileExtensions string) (string, error)
- func TempFileWithExtension(filename string) (*os.File, error)
- type ExitError
- type LockFile
- type Logger
- type LoggerStreamer
- type Shell
- func (s *Shell) AbsolutePath(executable string) (string, error)
- func (s *Shell) Chdir(path string) error
- func (s *Shell) Getwd() string
- func (s *Shell) LockFile(path string, timeout time.Duration) (LockFile, error)
- func (s *Shell) Run(command string, arg ...string) error
- func (s *Shell) RunAndCapture(command string, arg ...string) (string, error)
- func (s *Shell) RunScript(path string, extra *env.Environment) error
- func (s *Shell) RunWithoutPrompt(command string, arg ...string) error
- type TestingLogger
- func (tl TestingLogger) Commentf(format string, v ...interface{})
- func (tl TestingLogger) Errorf(format string, v ...interface{})
- func (tl TestingLogger) Headerf(format string, v ...interface{})
- func (tl TestingLogger) Printf(format string, v ...interface{})
- func (tl TestingLogger) Promptf(format string, v ...interface{})
- func (tl TestingLogger) Warningf(format string, v ...interface{})
- func (tl TestingLogger) Write(b []byte) (int, error)
- type WriterLogger
- func (wl *WriterLogger) Commentf(format string, v ...interface{})
- func (wl *WriterLogger) Errorf(format string, v ...interface{})
- func (wl *WriterLogger) Headerf(format string, v ...interface{})
- func (wl *WriterLogger) Printf(format string, v ...interface{})
- func (wl *WriterLogger) Promptf(format string, v ...interface{})
- func (wl *WriterLogger) Warningf(format string, v ...interface{})
- func (wl *WriterLogger) Write(b []byte) (int, error)
Constants ¶
This section is empty.
Variables ¶
var DiscardLogger = &WriterLogger{ Writer: ioutil.Discard, }
DiscardLogger discards all log messages
var StderrLogger = &WriterLogger{ Writer: os.Stderr, Ansi: true, }
StderrLogger is a Logger that writes to Stderr
Functions ¶
func BatchEscape ¶
BatchEscape escapes a string for use with an `ECHO` statement in a Windows Batch file. http://www.robvanderwoude.com/escapechars.php
func GetExitCode ¶
GetExitCode extracts an exit code from an error where the platform supports it, otherwise returns 0 for no error and 1 for an error
func IsExitError ¶
Types ¶
type LockFile ¶
type LockFile interface {
Unlock() error
}
LockFile is a pid-based lock for cross-process locking
type Logger ¶
type Logger interface { io.Writer // Printf prints a line of output Printf(format string, v ...interface{}) // Headerf prints a Buildkite formatted header Headerf(format string, v ...interface{}) // Commentf prints a comment line, e.g `# my comment goes here` Commentf(format string, v ...interface{}) // Errorf shows a Buildkite formatted error expands the previous group Errorf(format string, v ...interface{}) // Warningf shows a buildkite boostrap warning Warningf(format string, v ...interface{}) // Promptf prints a shell prompt Promptf(format string, v ...interface{}) }
Logger represents a logger that outputs to a buildkite shell.
type LoggerStreamer ¶
type LoggerStreamer struct { Logger Logger Prefix string // contains filtered or unexported fields }
func NewLoggerStreamer ¶
func NewLoggerStreamer(logger Logger) *LoggerStreamer
func (*LoggerStreamer) Close ¶
func (l *LoggerStreamer) Close() error
func (*LoggerStreamer) Output ¶
func (l *LoggerStreamer) Output() error
type Shell ¶
type Shell struct { Logger // The running environment for the shell Env *env.Environment // Whether the shell is a PTY PTY bool // Where stdout is written, defaults to os.Stdout Writer io.Writer // Whether to run the shell in debug mode Debug bool // contains filtered or unexported fields }
Shell represents a virtual shell, handles logging, executing commands and provides hooks for capturing output and exit conditions.
Provides a lowest-common denominator abstraction over macOS, Linux and Windows
func NewWithContext ¶
New returns a new Shell with provided context.Context
func (*Shell) AbsolutePath ¶
AbsolutePath returns the absolute path to an executable based on the PATH and PATHEXT of the Shell
func (*Shell) Run ¶
Run runs a command, write stdout and stderr to the logger and return an error if it fails
func (*Shell) RunAndCapture ¶
RunAndCapture runs a command and captures the output for processing. Stdout is captured, but stderr isn't. If the shell is in debug mode then the command will be eched and both stderr and stdout will be written to the logger. A PTY is never used for RunAndCapture.
type TestingLogger ¶
func (TestingLogger) Commentf ¶
func (tl TestingLogger) Commentf(format string, v ...interface{})
func (TestingLogger) Errorf ¶
func (tl TestingLogger) Errorf(format string, v ...interface{})
func (TestingLogger) Headerf ¶
func (tl TestingLogger) Headerf(format string, v ...interface{})
func (TestingLogger) Printf ¶
func (tl TestingLogger) Printf(format string, v ...interface{})
func (TestingLogger) Promptf ¶
func (tl TestingLogger) Promptf(format string, v ...interface{})
func (TestingLogger) Warningf ¶
func (tl TestingLogger) Warningf(format string, v ...interface{})
type WriterLogger ¶
WriterLogger provides a logger that writes to an io.Writer
func (*WriterLogger) Commentf ¶
func (wl *WriterLogger) Commentf(format string, v ...interface{})
func (*WriterLogger) Errorf ¶
func (wl *WriterLogger) Errorf(format string, v ...interface{})
func (*WriterLogger) Headerf ¶
func (wl *WriterLogger) Headerf(format string, v ...interface{})
func (*WriterLogger) Printf ¶
func (wl *WriterLogger) Printf(format string, v ...interface{})
func (*WriterLogger) Promptf ¶
func (wl *WriterLogger) Promptf(format string, v ...interface{})
func (*WriterLogger) Warningf ¶
func (wl *WriterLogger) Warningf(format string, v ...interface{})