mirror of
https://github.com/beego/bee.git
synced 2024-11-21 23:50:54 +00:00
31 lines
682 B
Go
31 lines
682 B
Go
|
package main
|
||
|
|
||
|
import "fmt"
|
||
|
import "os"
|
||
|
import "runtime"
|
||
|
import "path/filepath"
|
||
|
|
||
|
// 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...)
|
||
|
}
|
||
|
}
|