summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorRob Pike <r@golang.org>2009-02-17 19:35:01 -0800
committerRob Pike <r@golang.org>2009-02-17 19:35:01 -0800
commit97df3e846d831577cf48e6b7b855a77849a55440 (patch)
treed38c026812da52f83683825af207aed6716328c4 /src
parent89d56dc1458cf055c982d770c3d2b8d68fc2248c (diff)
downloadgolang-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.go23
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);