Index | Files

package util

import ""

Package util defines utilities for bosun.


Package Files

command.go json.go match.go proxy.go util.go


const (
    Separator = filepath.Separator


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 ErrBadPattern = errors.New("syntax error in pattern")

ErrBadPattern indicates a globbing pattern was malformed.

func Btoi Uses

func Btoi(b bool) int

func Command Uses

func Command(timeout time.Duration, stdin io.Reader, name string, arg ...string) (io.Reader, error)

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 GetHostManager Uses

func GetHostManager() host.Manager

func InitHostManager Uses

func InitHostManager(customHostname string, useFullHostName bool)

func MarshalGzipJson Uses

func MarshalGzipJson(data interface{}) ([]byte, error)

func Match Uses

func Match(pattern, name string) (matched bool, err error)

Match returns true if name matches any of the patterns. The pattern syntax is:

	{ 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

	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 NameMatches Uses

func NameMatches(name string, regexes []*regexp.Regexp) bool

func NewSingleHostProxy Uses

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 Uses

func ReadCommand(line func(string) error, name string, arg ...string) error

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 Uses

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 SetHostManager Uses

func SetHostManager(hm host.Manager)

func UnmarshalGzipJson Uses

func UnmarshalGzipJson(b []byte, dst interface{}) error

Package util imports 18 packages (graph) and is imported by 28 packages. Updated 2020-05-30. Refresh now. Tools for package owners.