package executil

import "github.com/tredoe/osutil/executil"

Package executil lets to call to system commands.

Index

Variables

var DebugAsBash bool

DebugRunAsBash shows debug messages at functions related to 'RunAsBash()'.

var ErrProcKilled = errors.New("the process hasn't exited or was terminated by a signal")

ErrProcKilled reports an error by a process killed.

var ListWinShell = []WinShell{
	Cmd,
	Db2,
}

ListWinShell is the list of Windows shells.

Functions

func CheckStderr

func CheckStderr(stderr []byte, err error) error

CheckStderr returns an error whether 'stderr' is not empty or there is any error.

func Run

func Run(cmd string, args ...string) (stdout, stderr []byte, err error)

Run executes a command. Returns both standard output and error.

func RunAsBash

func RunAsBash(command string) (output []byte, err error)

RunAsBash executes external commands just like RunAsBashWithMatch, but does not return the boolean `match`.

func RunAsBashWithMatch

func RunAsBashWithMatch(command string) (output []byte, match bool, err error)

RunAsBashWithMatch executes external commands with access to shell features such as filename wildcards, shell pipes, environment variables, and expansion of the shortcut character "~" to home directory. It also logs the command.

This function avoids to have execute commands through a shell since an unsanitized input from an untrusted source makes a program vulnerable to shell injection, a serious security flaw which can result in arbitrary command execution.

The most of commands return a text in output or an error if any. `match` is used in commands like *grep*, *find*, or *cmp* to indicate if the search is matched.

func RunAsBashWithMatchf

func RunAsBashWithMatchf(format string, args ...interface{}) ([]byte, bool, error)

RunAsBashWithMatchf is like RunAsBashWithMatch, but formats its arguments according to the format. Analogous to Printf().

func RunAsBashf

func RunAsBashf(format string, args ...interface{}) ([]byte, error)

RunAsBashf is like RunAsBash, but formats its arguments according to the format. Analogous to Printf().

func RunNoStdErr

func RunNoStdErr(extraEnv []string, cmd string, args ...string) error

RunNoStdErr executes a command setting only standard output. Logs the command.

func RunToStd

func RunToStd(extraEnv []string, cmd string, args ...string) error

RunToStd executes a command setting both standard output and error. Logs the command.

func RunToStdButErr

func RunToStdButErr(checkStderr []byte, extraEnv []string, cmd string, args ...string) error

RunToStdButErr executes a command setting the standard output. Logs the command.

checkStderr (if any) checks if it is found in the standard error to know whether the standard error is not really an error.

func RunWinshell

func RunWinshell(sh WinShell, closeWindow bool, cmd string) (out []byte, err error)

RunWinshell executes a command into a Windows' shell called from Powershell. Logs the command and returns the command output.

func RunWithTime

func RunWithTime(timeKillCmd time.Duration, cmd string, args ...string,
) (stdout, stderr []byte, err error)

RunWithTime executes a command waiting to finish the command before of kill it ('timeKillCmd'), or waits without kill it when the duration is lesser or equal to zero). Logs the command and returns both standard output and error.

func SaveCmdOut

func SaveCmdOut(dir, filename string, stdout, stderr []byte, fnCheckStderr func([]byte) error,
) (err error)

SaveCmdOut saves both standard out and error to files, and print the standard out (if any). fnCheckStderr is a function to check the standard error.

Types

type WinShell

type WinShell uint8

WinShell represents a Windows shell.

const (
	Cmd WinShell
	Db2
)

Windows shells.

func (WinShell) String

func (sh WinShell) String() string

Source Files

bash.go doc.go env.go errors.go run.go win.go

Version
v1.2.1
Published
Aug 9, 2021
Platform
js/wasm
Imports
13 packages
Last checked
1 day ago

Tools for package owners.