Documentation
¶
Index ¶
- func AbsPath(pathname string) string
- func Call(cmd string, fn func(retCode int, stdoutText string)) (err error)
- func CallQuiet(cmd string, fn func(retCode int, stdoutText string)) (err error)
- func CallSlice(cmd []string, fn func(retCode int, stdoutText string)) (err error)
- func CallSliceQuiet(cmd []string, fn func(retCode int, stdoutText string)) (err error)
- func CopyFile(src, dst string) (err error)
- func CopyFileByLinkFirst(src, dst string) (err error)
- func DeleteFile(dst string) (err error)
- func EnsureDir(dir string) (err error)
- func EnsureDirEnh(dir string) (err error)
- func FileExists(filepath string) bool
- func FileModeIs(filepath string, tester func(mode os.FileMode) bool) (ret bool)
- func ForDir(root string, ...) (err error)
- func ForDirMax(root string, initialDepth, maxDepth int, ...) (err error)
- func ForFile(root string, ...) (err error)
- func ForFileMax(root string, initialDepth, maxDepth int, ...) (err error)
- func GetCurrentDir() string
- func GetExecutableDir() string
- func GetExecutablePath() string
- func InvokeShellScripts(scripts string, opts ...ISSOpt) (err error)
- func IsDirectory(filepath string) (bool, error)
- func IsEAccess(err error) bool
- func IsExitError(err error) (int, bool)
- func IsModeCharDevice(mode os.FileMode) bool
- func IsModeDevice(mode os.FileMode) bool
- func IsModeDirectory(mode os.FileMode) bool
- func IsModeExecAll(mode os.FileMode) bool
- func IsModeExecAny(mode os.FileMode) bool
- func IsModeExecGroup(mode os.FileMode) bool
- func IsModeExecOther(mode os.FileMode) bool
- func IsModeExecOwner(mode os.FileMode) bool
- func IsModeIrregular(mode os.FileMode) bool
- func IsModeNamedPipe(mode os.FileMode) bool
- func IsModeReadAll(mode os.FileMode) bool
- func IsModeReadAny(mode os.FileMode) bool
- func IsModeReadGroup(mode os.FileMode) bool
- func IsModeReadOther(mode os.FileMode) bool
- func IsModeReadOwner(mode os.FileMode) bool
- func IsModeRegular(mode os.FileMode) bool
- func IsModeSetgid(mode os.FileMode) bool
- func IsModeSetuid(mode os.FileMode) bool
- func IsModeSocket(mode os.FileMode) bool
- func IsModeSticky(mode os.FileMode) bool
- func IsModeSymbolicLink(mode os.FileMode) bool
- func IsModeWriteAll(mode os.FileMode) bool
- func IsModeWriteAny(mode os.FileMode) bool
- func IsModeWriteGroup(mode os.FileMode) bool
- func IsModeWriteOther(mode os.FileMode) bool
- func IsModeWriteOwner(mode os.FileMode) bool
- func IsRegularFile(filepath string) (bool, error)
- func LeftPad(s string, pad int) string
- func LookPath(file string) (string, error)
- func New(opts ...Opt) *calling
- func NormalizeDir(s string) string
- func NormalizePath(pathname string) string
- func RemoveDirRecursive(dir string) (err error)
- func Run(command string, arguments ...string) (err error)
- func RunCommand(command string, readStdout bool, arguments ...string) (retCode int, stdoutText string, err error)
- func RunCommandFull(command string, readStdout bool, arguments ...string) (retCode int, stdoutText, stderrText string, err error)
- func RunWithOutput(command string, arguments ...string) (retCode int, stdoutText string, err error)
- func SplitCommandString(s string, quoteChars ...rune) []string
- func StripHtmlTags(s string) string
- func StripLeftTabs(s string) string
- func StripQuotes(s string) string
- func Sudo(command string, arguments ...string) (retCode int, stdoutText string, err error)
- func TrimQuotes(s string) string
- type ISSOpt
- type Opt
- func WithCommand(cmd ...interface{}) Opt
- func WithCommandArgs(cmd string, args ...string) Opt
- func WithCommandString(cmd string) Opt
- func WithContext(ctx context.Context) Opt
- func WithEnv(key, value string) Opt
- func WithExtraFiles(files ...*os.File) Opt
- func WithOnError(onError func(err error, retCode int, stdoutText, stderrText string)) Opt
- func WithOnOK(onOK func(retCode int, stdoutText string)) Opt
- func WithPadding(leftPadding int) Opt
- func WithQuietOnError(quiet bool) Opt
- func WithStderrCaught(writer ...io.Writer) Opt
- func WithStdoutCaught(writer ...io.Writer) Opt
- func WithVerboseCommandLine(verbose bool) Opt
- func WithWorkDir(dir string) Opt
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
func AbsPath ¶ added in v0.3.9
AbsPath returns a clean, normalized and absolute path string for the given pathname. Deprecated see also dir.AbsPath
func Call ¶ added in v1.5.3
Call executes the command line via system (OS).
DO NOT QUOTE: in 'cmd', A command line shouldn't has quoted parts. These are bad:
cmd := "ls '/usr/bin'" cmd := `tar "c:/My Documents/"`
Uses CallSlice if your args includes space (like 'c:/My Documents/')
func CallQuiet ¶ added in v1.5.3
CallQuiet executes the command line via system (OS) without error printing.
DO NOT QUOTE: in 'cmd', A command line shouldn't has quoted parts. These are bad:
cmd := "ls '/usr/bin'" cmd := `tar "c:/My Documents/"`
Uses CallSliceQuiet if your args includes space (like 'c:/My Documents/')
func CallSliceQuiet ¶ added in v1.5.3
CallSliceQuiet executes the command line via system (OS) without error printing.
func CopyFile ¶ added in v0.3.12
CopyFile will make a content clone of src. Deprecated see also dir.CopyFile
func CopyFileByLinkFirst ¶ added in v0.3.12
CopyFileByLinkFirst copies a file from src to dst. If src and dst files exist, and are the same, then return success. Otherwise, attempt to create a hard link between the two files. If that fail, copy the file contents from src to dst. Deprecated see also dir.CopyFileByLinkFirst
func DeleteFile ¶ added in v0.3.12
DeleteFile deletes a file if exists Deprecated see also dir.DeleteFile
func EnsureDirEnh ¶
EnsureDirEnh checks and creates the directory, via sudo if necessary. Deprecated see also dir.EnsureDirEnh
func FileExists ¶
FileExists returns the existence of an directory or file Deprecated see also dir.FileExist
func FileModeIs ¶ added in v0.2.3
FileModeIs tests the mode of 'filepath' with 'tester'. Examples:
var yes = exec.FileModeIs("/etc/passwd", exec.IsModeExecAny)
var yes = exec.FileModeIs("/etc/passwd", exec.IsModeDirectory)
Deprecated see also dir.FileModeIs
func ForDir ¶ added in v0.1.18
func ForDir(root string, cb func(depth int, cwd string, fi os.FileInfo) (stop bool, err error)) (err error)
ForDir walks on `root` directory and its children Deprecated see also dir.ForDir
func ForDirMax ¶ added in v0.1.18
func ForDirMax(root string, initialDepth, maxDepth int, cb func(depth int, cwd string, fi os.FileInfo) (stop bool, err error)) (err error)
ForDirMax walks on `root` directory and its children with nested levels up to `maxLength`.
Example - discover folder just one level
_ = ForDirMax(dir, 0, 1, func(depth int, cwd string, fi os.FileInfo) (stop bool, err error) {
if fi.IsDir() {
return
}
// ... doing something for a file,
return
})
maxDepth = -1: no limit. initialDepth: 0 if no idea. Deprecated see also dir.ForDirMax
func ForFile ¶ added in v0.3.12
func ForFile(root string, cb func(depth int, cwd string, fi os.FileInfo) (stop bool, err error)) (err error)
ForFile walks on `root` directory and its children Deprecated see also dir.ForFile
func ForFileMax ¶ added in v0.3.12
func ForFileMax(root string, initialDepth, maxDepth int, cb func(depth int, cwd string, fi os.FileInfo) (stop bool, err error)) (err error)
ForFileMax walks on `root` directory and its children with nested levels up to `maxLength`.
Example - discover folder just one level
_ = ForFileMax(dir, 0, 1, func(depth int, cwd string, fi os.FileInfo) (stop bool, err error) {
if fi.IsDir() {
return
}
// ... doing something for a file,
return
})
maxDepth = -1: no limit. initialDepth: 0 if no idea.
Deprecated see also dir.ForFileMax
func GetCurrentDir ¶
func GetCurrentDir() string
GetCurrentDir returns the current workingFlag directory it should be equal with os.Getenv("PWD") Deprecated see also dir.GetCurrentDir
func GetExecutableDir ¶
func GetExecutableDir() string
GetExecutableDir returns the executable file directory Deprecated see also dir.GetExecutableDir
func GetExecutablePath ¶ added in v0.1.16
func GetExecutablePath() string
GetExecutablePath returns the executable file path Deprecated see also dir.GetExecutablePath
func InvokeShellScripts ¶ added in v1.5.15
InvokeShellScripts invokes a shell script fragments with internal invoker (typically it's hedzr/log.exec.Run).
InvokeShellScripts finds and prepares the proper shell (bash, or powershell, etc.), and call it by invoker.
The invoker can be customized by yours, use WithScriptInvoker.
func IsDirectory ¶
IsDirectory tests whether `path` is a directory or not Deprecated see also dir.IsDirectory
func IsModeCharDevice ¶ added in v0.2.3
IsModeCharDevice give the result of whether a file is a character device Deprecated see also dir.IsModeCharDevice
func IsModeDevice ¶ added in v0.2.3
IsModeDevice give the result of whether a file is a device Deprecated see also dir.IsModeDevice
func IsModeDirectory ¶ added in v0.2.3
IsModeDirectory give the result of whether a file is a directory Deprecated see also dir.IsModeDirectory
func IsModeExecAll ¶ added in v0.2.3
IsModeExecAll give the result of whether a file can be invoked by all users Deprecated see also dir.IsModeExecAll
func IsModeExecAny ¶ added in v0.2.3
IsModeExecAny give the result of whether a file can be invoked by anyone Deprecated see also dir.IsModeExecAny
func IsModeExecGroup ¶ added in v0.2.3
IsModeExecGroup give the result of whether a file can be invoked by its unix-group Deprecated see also dir.IsModeExecGroup
func IsModeExecOther ¶ added in v0.2.3
IsModeExecOther give the result of whether a file can be invoked by its unix-all Deprecated see also dir.IsModeExecOther
func IsModeExecOwner ¶ added in v0.2.3
IsModeExecOwner give the result of whether a file can be invoked by its unix-owner Deprecated see also dir.IsModeExecOwner
func IsModeIrregular ¶ added in v0.2.3
IsModeIrregular give the result of whether a file is a non-regular file; nothing else is known about this file Deprecated see also dir.IsModeIrregular
func IsModeNamedPipe ¶ added in v0.2.3
IsModeNamedPipe give the result of whether a file is a named pipe Deprecated see also dir.IsModePipe
func IsModeReadAll ¶ added in v0.2.3
IsModeReadAll give the result of whether a file can be read by all users Deprecated see also dir.IsModeReadAll
func IsModeReadAny ¶ added in v0.2.3
IsModeReadAny give the result of whether a file can be read by anyone Deprecated see also dir.IsModeReadAny
func IsModeReadGroup ¶ added in v0.2.3
IsModeReadGroup give the result of whether a file can be read by its unix-group Deprecated see also dir.IsModeReadGroup
func IsModeReadOther ¶ added in v0.2.3
IsModeReadOther give the result of whether a file can be read by its unix-all Deprecated see also dir.IsModeReadOther
func IsModeReadOwner ¶ added in v0.2.3
IsModeReadOwner give the result of whether a file can be read by its unix-owner Deprecated see also dir.IsModeReadOwner
func IsModeRegular ¶ added in v0.2.3
IsModeRegular give the result of whether a file is a regular file Deprecated see also dir.IsModeRegular
func IsModeSetgid ¶ added in v0.2.3
IsModeSetgid give the result of whether a file has the setgid bit Deprecated see also dir.IsModeSetgid
func IsModeSetuid ¶ added in v0.2.3
IsModeSetuid give the result of whether a file has the setuid bit Deprecated see also dir.IsModeSetuid
func IsModeSocket ¶ added in v0.2.3
IsModeSocket give the result of whether a file is a socket file Deprecated see also dir.IsModeSocket
func IsModeSticky ¶ added in v0.2.3
IsModeSticky give the result of whether a file is a sticky file Deprecated see also dir.IsModeSticky
func IsModeSymbolicLink ¶ added in v0.2.3
IsModeSymbolicLink give the result of whether a file is a symbolic link Deprecated see also dir.IsModeSymbolicLink
func IsModeWriteAll ¶ added in v0.2.3
IsModeWriteAll give the result of whether a file can be written by all users Deprecated see also dir.IsModeWriteAll
func IsModeWriteAny ¶ added in v0.2.3
IsModeWriteAny give the result of whether a file can be written by anyone Deprecated see also dir.IsModeWriteAny
func IsModeWriteGroup ¶ added in v0.2.3
IsModeWriteGroup give the result of whether a file can be written by its unix-group Deprecated see also dir.IsModeWriteGroup
func IsModeWriteOther ¶ added in v0.2.3
IsModeWriteOther give the result of whether a file can be written by its unix-all Deprecated see also dir.IsModeWriteOther
func IsModeWriteOwner ¶ added in v0.2.3
IsModeWriteOwner give the result of whether a file can be written by its unix-owner Deprecated see also dir.IsModeWriteOwner
func IsRegularFile ¶
IsRegularFile tests whether `path` is a normal regular file or not Deprecated see also dir.IsRegularFile
func LookPath ¶ added in v1.5.3
LookPath searches for an executable named file in the directories named by the PATH environment variable. If file contains a slash, it is tried directly and the PATH is not consulted. The result may be an absolute path or a path relative to the current directory.
func New ¶ added in v1.5.3
func New(opts ...Opt) *calling
New return a calling object to allow you to make the fluent call.
Just like:
exec.New().WithCommand("bash", "-c", "echo hello world!").Run()
err = exec.New().WithCommand("bash", "-c", "echo hello world!").RunAndCheckError()
Processing the invoke result:
exec.New().
WithCommand("bash", "-c", "echo hello world!").
WithStdoutCaught().
WithOnOK(func(retCode int, stdoutText string) { }).
WithStderrCaught().
WithOnError(func(err error, retCode int, stdoutText, stderrText string) { }).
Run()
Use context:
exec.New().
WithCommandString("bash -c 'echo hello world!'", '\'').
WithContext(context.TODO()).
Run()
// or double quote pieces
exec.New().
WithCommandString("bash -c \"echo hello world!\"").
Run()
Auto Left-Padding if WithOnError / WithOnOK / WithStderrCaught / WithStdoutCaught specified (It's no effects when you caught stdout/stderr with the handlers above. In this case, do it with LeftPad manually).
args := []string{"-al", "/usr/local/bin"}
err := exec.New().
WithPadding(8).
WithCommandArgs("ls", args...).
RunAndCheckError()
func NormalizeDir ¶
NormalizeDir make dir name normalized Deprecated see also dir.NormalizeDir
func NormalizePath ¶ added in v0.3.9
NormalizePath cleans up the given pathname Deprecated see also dir.NormalizePath
func RemoveDirRecursive ¶
RemoveDirRecursive removes a directory and any children it contains. Deprecated see also dir.RemoveDirRecursive
func RunCommand ¶
func RunCommand(command string, readStdout bool, arguments ...string) (retCode int, stdoutText string, err error)
RunCommand runs an OS command and return outputs
func RunCommandFull ¶ added in v1.3.23
func RunCommandFull(command string, readStdout bool, arguments ...string) (retCode int, stdoutText, stderrText string, err error)
RunCommandFull runs an OS command and return the all outputs
func RunWithOutput ¶
RunWithOutput runs an OS command and collect the result outputting
func SplitCommandString ¶ added in v1.5.3
SplitCommandString allows split command-line by quote characters (default is double-quote).
In: `bash -c 'echo hello world!'` Out: []string{ "bash", "-c", "echo hello world!"}
func StripHtmlTags ¶ added in v1.5.11
StripHtmlTags aggressively strips HTML tags from a string. It will only keep anything between `>` and `<`.
func StripLeftTabs ¶ added in v1.5.11
StripLeftTabs removes the padding tabs at left margin. The least tab chars will be erased at left side of lines, and the tab chars beyond the least at left will be kept.
func StripQuotes ¶ added in v1.5.11
StripQuotes strips first and last quote char (double quote or single quote).
func TrimQuotes ¶ added in v1.5.3
TrimQuotes strips first and last quote char (double quote or single quote).
Types ¶
type ISSOpt ¶ added in v1.5.15
type ISSOpt func(c *issCtx)
func WithScriptExpander ¶ added in v1.5.15
WithScriptExpander providers a string expander for the given script.
You may specify a special one (such as os.ExpandEnv) rather than internal default (a dummy functor to return the source directly).
func WithScriptInvoker ¶ added in v1.5.15
WithScriptInvoker provides a custom runner to run the shell and scripts.
The default is exec.Run in hedzr/log package.
For example:
err = InvokeShellScripts("ls -l /",
WithScriptShell("/bin/bash"),
WithScriptIsFile(false),
WithScriptInvoker(func(command string, args ...string) (err error) {
err = exec.New().
WithCommandArgs(command, args...).
WithOnOK(func(retCode int, stdoutText string) {
t.Logf("%v", LeftPad(stdoutText, 4))
}).
RunAndCheckError()
return
}),
)
if err != nil {
t.Errorf("%v", err)
}
func WithScriptIsFile ¶ added in v1.5.15
WithScriptIsFile provides a bool flag for flagging the given scripts is a shell scripts fragments or a file.
func WithScriptShell ¶ added in v1.5.15
WithScriptShell provides a predefined shell executable (short if it's in $PATH, or full-path by you risks).
The knownShell looks like shebang. Such as: '/bin/bash', or '/usr/bin/env bash', ...
type Opt ¶ added in v1.5.3
type Opt func(*calling)
func WithCommand ¶ added in v1.5.3
func WithCommand(cmd ...interface{}) Opt
func WithCommandArgs ¶ added in v1.5.3
func WithCommandString ¶ added in v1.5.3
func WithContext ¶ added in v1.5.3
func WithExtraFiles ¶ added in v1.5.3
func WithOnError ¶ added in v1.5.3
func WithPadding ¶ added in v1.5.3
func WithQuietOnError ¶ added in v1.5.9
WithQuietOnError do NOT print error internally