diff options
author | Rob Pike <r@golang.org> | 2009-02-17 19:35:01 -0800 |
---|---|---|
committer | Rob Pike <r@golang.org> | 2009-02-17 19:35:01 -0800 |
commit | 97df3e846d831577cf48e6b7b855a77849a55440 (patch) | |
tree | d38c026812da52f83683825af207aed6716328c4 /src | |
parent | 89d56dc1458cf055c982d770c3d2b8d68fc2248c (diff) | |
download | golang-97df3e846d831577cf48e6b7b855a77849a55440.tar.gz |
more fun with triv.go: flags and arguments
R=rsc
DELTA=23 (23 added, 0 deleted, 0 changed)
OCL=25088
CL=25134
Diffstat (limited to 'src')
-rw-r--r-- | src/lib/http/triv.go | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/lib/http/triv.go b/src/lib/http/triv.go index 3c527310e..666f2b204 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); |