Lint and document manager api

tokarchuk/v1.17
Sandro Santilli 8 years ago
parent 6ed7f269f1
commit ad3d6b7fff
  1. 25
      modules/process/manager.go

@ -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…
Cancel
Save