1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00

beam/examples/beamsh: hide debug messages in examples/beamsh by default

Docker-DCO-1.1-Signed-off-by: Solomon Hykes <solomon@docker.com> (github: shykes)
This commit is contained in:
Solomon Hykes 2014-03-24 16:21:55 -07:00
parent 97a2c0ebe6
commit cb66e8c136

View file

@ -17,7 +17,7 @@ import (
) )
func main() { func main() {
Logf("Initializing engine\n") Debugf("Initializing engine\n")
client, engine, err := beam.USocketPair() client, engine, err := beam.USocketPair()
if err != nil { if err != nil {
Fatal(err) Fatal(err)
@ -25,7 +25,7 @@ func main() {
defer client.Close() defer client.Close()
go func() { go func() {
Serve(engine, builtinsHandler) Serve(engine, builtinsHandler)
Logf("Shutting down engine\n") Debugf("Shutting down engine\n")
engine.Close() engine.Close()
}() }()
if term.IsTerminal(0) { if term.IsTerminal(0) {
@ -39,7 +39,7 @@ func main() {
if len(line) != 0 { if len(line) != 0 {
cmd, err := dockerscript.Parse(strings.NewReader(line)) cmd, err := dockerscript.Parse(strings.NewReader(line))
if err != nil { if err != nil {
Logf("error: %v\n", err) fmt.Fprintf(os.Stderr, "error: %v\n", err)
continue continue
} }
executeScript(client, cmd) executeScript(client, cmd)
@ -60,7 +60,7 @@ func main() {
} }
func executeScript(client *net.UnixConn, script []*dockerscript.Command) { func executeScript(client *net.UnixConn, script []*dockerscript.Command) {
Logf("%d commands:\n", len(script)) Debugf("%d commands:\n", len(script))
for _, cmd := range script { for _, cmd := range script {
job, err := beam.SendPipe(client, []byte(strings.Join(cmd.Args, " "))) job, err := beam.SendPipe(client, []byte(strings.Join(cmd.Args, " ")))
if err != nil { if err != nil {
@ -68,9 +68,9 @@ func executeScript(client *net.UnixConn, script []*dockerscript.Command) {
} }
// TODO: pass a default handler to deal with 'status' // TODO: pass a default handler to deal with 'status'
// --> use beam chaining? // --> use beam chaining?
Logf("Listening for reply messages\n") Debugf("Listening for reply messages\n")
Serve(job, builtinsHandler) Serve(job, builtinsHandler)
Logf("[%s] done\n", strings.Join(cmd.Args, " ")) Debugf("[%s] done\n", strings.Join(cmd.Args, " "))
} }
} }
@ -109,7 +109,7 @@ func CmdEcho(args []string, f *os.File) {
if err != nil { if err != nil {
return return
} }
Logf("[CmdEcho] stdout pipe() r=%d w=%d\n", r.Fd(), w.Fd()) Debugf("[CmdEcho] stdout pipe() r=%d w=%d\n", r.Fd(), w.Fd())
if err := beam.Send(resp, []byte("log stdout"), r); err != nil { if err := beam.Send(resp, []byte("log stdout"), r); err != nil {
return return
} }
@ -150,7 +150,7 @@ func parseEnv(args []string) ([]string, map[string]string) {
} }
func CmdLog(args []string, f *os.File) { func CmdLog(args []string, f *os.File) {
defer Logf("CmdLog done\n") defer Debugf("CmdLog done\n")
name := args[1] name := args[1]
input := bufio.NewScanner(f) input := bufio.NewScanner(f)
for input.Scan() { for input.Scan() {
@ -166,8 +166,8 @@ func CmdLog(args []string, f *os.File) {
} }
func Serve(endpoint *net.UnixConn, handler func([]string, *os.File)) error { func Serve(endpoint *net.UnixConn, handler func([]string, *os.File)) error {
Logf("[Serve %#v]\n", handler) Debugf("[Serve %#v]\n", handler)
defer Logf("[Serve %#v] done\n", handler) defer Debugf("[Serve %#v] done\n", handler)
var tasks sync.WaitGroup var tasks sync.WaitGroup
defer tasks.Wait() defer tasks.Wait()
for { for {
@ -178,15 +178,15 @@ func Serve(endpoint *net.UnixConn, handler func([]string, *os.File)) error {
tasks.Add(1) tasks.Add(1)
// Handle new message // Handle new message
go func(payload []byte, attachment *os.File) { go func(payload []byte, attachment *os.File) {
Logf("---> Handling '%s' [fd=%d]\n", payload, attachment.Fd()) Debugf("---> Handling '%s' [fd=%d]\n", payload, attachment.Fd())
defer tasks.Done() defer tasks.Done()
if attachment != nil { if attachment != nil {
defer func() { defer func() {
Logf("---> Closing attachment [fd=%d] for msg '%s'\n", attachment.Fd(), payload) Debugf("---> Closing attachment [fd=%d] for msg '%s'\n", attachment.Fd(), payload)
attachment.Close() attachment.Close()
}() }()
} else { } else {
defer Logf("---> No attachment to close for msg '%s'\n", payload) defer Debugf("---> No attachment to close for msg '%s'\n", payload)
} }
args, err := parseMsgPayload(payload) args, err := parseMsgPayload(payload)
if err != nil { if err != nil {
@ -196,9 +196,9 @@ func Serve(endpoint *net.UnixConn, handler func([]string, *os.File)) error {
} }
return return
} }
Logf("---> calling handler for '%s'\n", args[0]) Debugf("---> calling handler for '%s'\n", args[0])
handler(args, attachment) handler(args, attachment)
Logf("---> handler returned for '%s'\n", args[0]) Debugf("---> handler returned for '%s'\n", args[0])
}(payload, attachment) }(payload, attachment)
} }
return nil return nil
@ -225,6 +225,12 @@ func Logf(msg string, args ...interface{}) (int, error) {
return fmt.Printf(msg, args...) return fmt.Printf(msg, args...)
} }
func Debugf(msg string, args ...interface{}) {
if os.Getenv("DEBUG") != "" {
Logf(msg, args...)
}
}
func Fatalf(msg string, args ...interface{}) { func Fatalf(msg string, args ...interface{}) {
Logf(msg, args) Logf(msg, args)
os.Exit(1) os.Exit(1)