bee/util.go

33 lines
669 B
Go
Raw Normal View History

2013-07-06 07:30:57 +00:00
package main
2013-08-09 14:40:46 +00:00
import (
"fmt"
"os"
"path/filepath"
"runtime"
)
2013-07-06 07:30:57 +00:00
// Go is a basic promise implementation: it wraps calls a function in a goroutine
// and returns a channel which will later return the function's return value.
func Go(f func() error) chan error {
ch := make(chan error)
go func() {
ch <- f()
}()
return ch
}
// if os.env DEBUG set, debug is on
func Debugf(format string, a ...interface{}) {
if os.Getenv("DEBUG") != "" {
_, file, line, ok := runtime.Caller(1)
if !ok {
file = "<unknown>"
line = -1
} else {
file = filepath.Base(file)
}
fmt.Fprintf(os.Stderr, fmt.Sprintf("[debug] %s:%d %s\n", file, line, format), a...)
}
}