package executil
import "github.com/tredoe/osutil/executil"
Package executil lets to call to system commands.
Index ¶
- Variables
- func CheckStderr(stderr []byte, err error) error
- func Run(cmd string, args ...string) (stdout, stderr []byte, err error)
- func RunAsBash(command string) (output []byte, err error)
- func RunAsBashWithMatch(command string) (output []byte, match bool, err error)
- func RunAsBashWithMatchf(format string, args ...interface{}) ([]byte, bool, error)
- func RunAsBashf(format string, args ...interface{}) ([]byte, error)
- func RunNoStdErr(extraEnv []string, cmd string, args ...string) error
- func RunToStd(extraEnv []string, cmd string, args ...string) error
- func RunToStdButErr(checkStderr []byte, extraEnv []string, cmd string, args ...string) error
- func RunWinshell(sh WinShell, closeWindow bool, cmd string) (out []byte, err error)
- func RunWithTime(timeKillCmd time.Duration, cmd string, args ...string, ) (stdout, stderr []byte, err error)
- func SaveCmdOut(dir, filename string, stdout, stderr []byte, fnCheckStderr func([]byte) error, ) (err error)
- type WinShell
Variables ¶
var DebugAsBash bool
DebugRunAsBash shows debug messages at functions related to 'RunAsBash()'.
ErrProcKilled reports an error by a process killed.
var ListWinShell = []WinShell{ Cmd, Db2, }
ListWinShell is the list of Windows shells.
Functions ¶
func CheckStderr ¶
CheckStderr returns an error whether 'stderr' is not empty or there is any error.
func Run ¶
Run executes a command. Returns both standard output and error.
func RunAsBash ¶
RunAsBash executes external commands just like RunAsBashWithMatch, but does not return the boolean `match`.
func RunAsBashWithMatch ¶
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 ¶
RunAsBashWithMatchf is like RunAsBashWithMatch, but formats its arguments according to the format. Analogous to Printf().
func RunAsBashf ¶
RunAsBashf is like RunAsBash, but formats its arguments according to the format. Analogous to Printf().
func RunNoStdErr ¶
RunNoStdErr executes a command setting only standard output. Logs the command.
func RunToStd ¶
RunToStd executes a command setting both standard output and error. Logs the command.
func RunToStdButErr ¶
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 ¶
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 ¶
Source Files ¶
bash.go doc.go env.go errors.go run.go win.go
- Version
- v1.2.0
- Published
- Aug 9, 2021
- Platform
- js/wasm
- Imports
- 13 packages
- Last checked
- 1 day ago –
Tools for package owners.