Documentation ¶
Overview ¶
Package util defines utilities for bosun.
Index ¶
- Constants
- Variables
- func Btoi(b bool) int
- func Clean(s string) string
- func Command(timeout time.Duration, stdin io.Reader, name string, arg ...string) (io.Reader, error)
- func MarshalGzipJson(data interface{}) ([]byte, error)
- func Match(pattern, name string) (matched bool, err error)
- func NameMatches(name string, regexes []*regexp.Regexp) bool
- func NewSingleHostProxy(target *url.URL) *httputil.ReverseProxy
- func ReadCommand(line func(string) error, name string, arg ...string) error
- func ReadCommandTimeout(timeout time.Duration, line func(string) error, stdin io.Reader, name string, ...) error
- func Set()
- func UnmarshalGzipJson(b []byte, dst interface{}) error
Constants ¶
const (
Separator = filepath.Separator
)
Variables ¶
var ( // ErrPath is returned by Command if the program is not in the PATH. ErrPath = errors.New("program not in PATH") // ErrTimeout is returned by Command if the program timed out. ErrTimeout = errors.New("program killed after timeout") // Debug enables debug logging. Debug = false )
var ( // Hostname is the machine's hostname. Hostname string // FullHostname will, if false, uses the hostname upto the first ".". Run Set() // manually after changing. FullHostname bool )
var ErrBadPattern = errors.New("syntax error in pattern")
ErrBadPattern indicates a globbing pattern was malformed.
Functions ¶
func Command ¶
Command executes the named program with the given arguments. If it does not exit within timeout, it is sent SIGINT (if supported by Go). After another timeout, it is killed.
func MarshalGzipJson ¶
func Match ¶
Match returns true if name matches any of the patterns. The pattern syntax is:
pattern: { term } [ '|' { term } '|' ... ] term: '*' matches any sequence of non-Separator characters '?' matches any single non-Separator character '[' [ '^' ] { character-range } ']' character class (must be non-empty) c matches character c (c != '*', '?', '\\', '[') '\\' c matches character c character-range: c matches character c (c != '\\', '-', ']') '\\' c matches character c lo '-' hi matches character c for lo <= c <= hi
Match requires pattern to match all of name, not just a substring. The only possible returned error is ErrBadPattern, when pattern is malformed.
func NewSingleHostProxy ¶
func NewSingleHostProxy(target *url.URL) *httputil.ReverseProxy
Creates a new http Proxy that forwards requests to the specified url. Differs from httputil.NewSingleHostReverseProxy only in that it properly sets the host header.
func ReadCommand ¶
ReadCommand runs command name with args and calls line for each line from its stdout. Command is interrupted (if supported by Go) after 10 seconds and killed after 20 seconds.
func ReadCommandTimeout ¶
func ReadCommandTimeout(timeout time.Duration, line func(string) error, stdin io.Reader, name string, arg ...string) error
ReadCommandTimeout is the same as ReadCommand with a specifiable timeout. It can also take a []byte as input (useful for chaining commands).
func UnmarshalGzipJson ¶
Types ¶
This section is empty.