Mercurial > mercurial > hgweb_golang.cgi
comparison src/ut/main.go @ 23:a3c8d0b20a60
ut: add file server & web server.
author | pyon@macmini |
---|---|
date | Mon, 09 Jul 2018 20:56:13 +0900 |
parents | 4232b4cbeeb5 |
children | f904a5f5b3cf |
comparison
equal
deleted
inserted
replaced
22:5345d67aea5a | 23:a3c8d0b20a60 |
---|---|
53 var orgrepv = flag.String( "B", "", "little grep -v tool. ( from list file )" ) // ok | 53 var orgrepv = flag.String( "B", "", "little grep -v tool. ( from list file )" ) // ok |
54 var tee = flag.String( "e", "", "little tee tool." ) // ok | 54 var tee = flag.String( "e", "", "little tee tool." ) // ok |
55 var replace = flag.Bool( "r", false, "replace strings. ( s/arg1/arg2/g )" ) // ok | 55 var replace = flag.Bool( "r", false, "replace strings. ( s/arg1/arg2/g )" ) // ok |
56 var nc = flag.Bool( "nc", false, "netcat." ) // ok | 56 var nc = flag.Bool( "nc", false, "netcat." ) // ok |
57 var ncl = flag.Bool( "ncl", false, "netcat listen-mode." ) // ok | 57 var ncl = flag.Bool( "ncl", false, "netcat listen-mode." ) // ok |
58 | 58 var fserver = flag.Int( "fs", 0, "file server" ) // ok |
59 var wserver = flag.Int( "ws", 0, "web server" ) // ok | |
59 | 60 |
60 var msleep = flag.Bool( "M", false, "sleep." ) | 61 var msleep = flag.Bool( "M", false, "sleep." ) |
61 //var swatch = flag.Bool( "W", false, "stop watch." ) | 62 //var swatch = flag.Bool( "W", false, "stop watch." ) |
62 //var bccalc = flag.Bool( "j", false, "calculator." ) | 63 //var bccalc = flag.Bool( "j", false, "calculator." ) |
63 //var bhole = flag.Bool( "k", false, "black hole. ( /dev/null )" ) | 64 //var bhole = flag.Bool( "k", false, "black hole. ( /dev/null )" ) |
96 fmt.Fprintf( os.Stderr, "OS = %s\n", runtime.GOOS ) | 97 fmt.Fprintf( os.Stderr, "OS = %s\n", runtime.GOOS ) |
97 fmt.Fprintf( os.Stderr, "ARCH = %s\n", runtime.GOARCH ) | 98 fmt.Fprintf( os.Stderr, "ARCH = %s\n", runtime.GOARCH ) |
98 fmt.Fprintf( os.Stderr, "HOSTNAME = %s", host ) | 99 fmt.Fprintf( os.Stderr, "HOSTNAME = %s", host ) |
99 fmt.Fprintf( os.Stderr, " [%s]\n", nw.GetLocalIP() ) | 100 fmt.Fprintf( os.Stderr, " [%s]\n", nw.GetLocalIP() ) |
100 os.Exit( 0 ) | 101 os.Exit( 0 ) |
102 } | |
103 | |
104 /* Here Servers */ | |
105 if *fserver != 0 { | |
106 addr := nw.GetLocalIP() + ":" + fmt.Sprintf( "%d", *fserver ) | |
107 log.Fatal( http.ListenAndServe( addr, http.FileServer( http.Dir( ".") ) ) ) | |
108 } | |
109 | |
110 if *wserver != 0 { | |
111 addr := nw.GetLocalIP() + ":" + fmt.Sprintf( "%d", *wserver ) | |
112 http.HandleFunc( "/", func( w http.ResponseWriter, r *http.Request ) { | |
113 if flag.NArg() == 0 { | |
114 fmt.Fprintf( w, "WebServer\n" ) | |
115 return | |
116 } | |
117 file := flag.Args()[0] | |
118 f, err := os.Open( file ) | |
119 if err != nil { | |
120 fmt.Fprintf( w, "WebServer\n" ) | |
121 } | |
122 if _, err = io.Copy( w, f ); err != nil { | |
123 log.Fatal( err ) | |
124 } | |
125 f.Close() | |
126 } ) | |
127 log.Fatal( http.ListenAndServe( addr, nil ) ) | |
101 } | 128 } |
102 | 129 |
103 /* Here Utility Function ( unix tool like tools ) */ | 130 /* Here Utility Function ( unix tool like tools ) */ |
104 if *msleep { | 131 if *msleep { |
105 fmt.Fprintln( os.Stderr, "not implement" ) | 132 fmt.Fprintln( os.Stderr, "not implement" ) |