commit
0581210a76
|
@ -15,13 +15,14 @@ import (
|
||||||
)
|
)
|
||||||
|
|
||||||
var (
|
var (
|
||||||
|
// ErrExecTimeout represent a timeout error
|
||||||
ErrExecTimeout = errors.New("Process execution timeout")
|
ErrExecTimeout = errors.New("Process execution timeout")
|
||||||
)
|
|
||||||
|
|
||||||
// Common timeout.
|
// DefaultTimeout is the timeout used by Exec* family
|
||||||
var (
|
// of function when timeout parameter is omitted or
|
||||||
|
// passed as -1
|
||||||
// NOTE: could be custom in config file for default.
|
// NOTE: could be custom in config file for default.
|
||||||
DEFAULT = 60 * time.Second
|
DefaultTimeout = 60 * time.Second
|
||||||
)
|
)
|
||||||
|
|
||||||
// Process represents a working process inherit from Gogs.
|
// Process represents a working process inherit from Gogs.
|
||||||
|
@ -51,10 +52,13 @@ func Add(desc string, cmd *exec.Cmd) int64 {
|
||||||
return pid
|
return pid
|
||||||
}
|
}
|
||||||
|
|
||||||
// Exec starts executing a command in given path, it records its process and timeout.
|
// ExecDir runs a command in given path and waits for its completion
|
||||||
|
// up to the given timeout (or DefaultTimeout if -1 is given).
|
||||||
|
// Returns its complete stdout and stderr
|
||||||
|
// outputs and an error, if any (including timeout)
|
||||||
func ExecDir(timeout time.Duration, dir, desc, cmdName string, args ...string) (string, string, error) {
|
func ExecDir(timeout time.Duration, dir, desc, cmdName string, args ...string) (string, string, error) {
|
||||||
if timeout == -1 {
|
if timeout == -1 {
|
||||||
timeout = DEFAULT
|
timeout = DefaultTimeout
|
||||||
}
|
}
|
||||||
|
|
||||||
bufOut := new(bytes.Buffer)
|
bufOut := new(bytes.Buffer)
|
||||||
|
@ -89,12 +93,17 @@ func ExecDir(timeout time.Duration, dir, desc, cmdName string, args ...string) (
|
||||||
return bufOut.String(), bufErr.String(), err
|
return bufOut.String(), bufErr.String(), err
|
||||||
}
|
}
|
||||||
|
|
||||||
// Exec starts executing a command, it records its process and timeout.
|
// ExecTimeout runs a command and waits for its completion
|
||||||
|
// up to the given timeout (or DefaultTimeout if -1 is given).
|
||||||
|
// Returns its complete stdout and stderr
|
||||||
|
// outputs and an error, if any (including timeout)
|
||||||
func ExecTimeout(timeout time.Duration, desc, cmdName string, args ...string) (string, string, error) {
|
func ExecTimeout(timeout time.Duration, desc, cmdName string, args ...string) (string, string, error) {
|
||||||
return ExecDir(timeout, "", desc, cmdName, args...)
|
return ExecDir(timeout, "", desc, cmdName, args...)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Exec starts executing a command, it records its process and has default timeout.
|
// Exec runs a command and waits for its completion
|
||||||
|
// up to DefaultTimeout. Returns its complete stdout and stderr
|
||||||
|
// outputs and an error, if any (including timeout)
|
||||||
func Exec(desc, cmdName string, args ...string) (string, string, error) {
|
func Exec(desc, cmdName string, args ...string) (string, string, error) {
|
||||||
return ExecDir(-1, "", desc, cmdName, args...)
|
return ExecDir(-1, "", desc, cmdName, args...)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue