From 03d6909ff74d9793b98f587717d5dbd76a4589d5 Mon Sep 17 00:00:00 2001 From: Rob Pike Date: Tue, 17 Feb 2009 19:35:01 -0800 Subject: [PATCH] more fun with triv.go: flags and arguments R=rsc DELTA=23 (23 added, 0 deleted, 0 changed) OCL=25088 CL=25134 --- src/lib/http/triv.go | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/src/lib/http/triv.go b/src/lib/http/triv.go index 3c527310ed..666f2b204a 100644 --- a/src/lib/http/triv.go +++ b/src/lib/http/triv.go @@ -45,6 +45,27 @@ func FileServer(c *http.Conn, req *http.Request) { fmt.Fprintf(c, "[%d bytes]\n", n); } +// simple flag server +var booleanflag = flag.Bool("boolean", true, "another flag for testing") +func FlagServer(c *http.Conn, req *http.Request) { + c.SetHeader("content-type", "text/plain; charset=utf-8"); + fmt.Fprint(c, "Flags:\n"); + flag.VisitAll(func (f *flag.Flag) { + if f.Value.String() != f.DefValue { + fmt.Fprintf(c, "%s = %s [default = %s]\n", f.Name, f.Value.String(), f.DefValue); + } else { + fmt.Fprintf(c, "%s = %s\n", f.Name, f.Value.String()); + } + }); +} + +// simple argument server +func ArgServer(c *http.Conn, req *http.Request) { + for i, s := range sys.Args { + fmt.Fprint(c, s, " "); + } +} + // a channel (just for the fun of it) type Chan chan int @@ -66,6 +87,8 @@ func main() { flag.Parse(); http.Handle("/counter", new(Counter)); http.Handle("/go/", http.HandlerFunc(FileServer)); + http.Handle("/flags/", http.HandlerFunc(FlagServer)); + http.Handle("/args/", http.HandlerFunc(ArgServer)); http.Handle("/go/hello", http.HandlerFunc(HelloServer)); http.Handle("/chan", ChanCreate()); err := http.ListenAndServe(":12345", nil); -- 2.48.1