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" )