# HG changeset patch # User pyon@macmini # Date 1531137373 -32400 # Node ID a3c8d0b20a603bea7e5fd26672f3d7fd0d01bef2 # Parent 5345d67aea5a50b65896c64969a9eaf24c1ef8d1 ut: add file server & web server. diff -r 5345d67aea5a -r a3c8d0b20a60 src/ut/main.go --- a/src/ut/main.go Fri Jun 29 20:14:29 2018 +0900 +++ b/src/ut/main.go Mon Jul 09 20:56:13 2018 +0900 @@ -55,7 +55,8 @@ var replace = flag.Bool( "r", false, "replace strings. ( s/arg1/arg2/g )" ) // ok var nc = flag.Bool( "nc", false, "netcat." ) // ok var ncl = flag.Bool( "ncl", false, "netcat listen-mode." ) // ok - + var fserver = flag.Int( "fs", 0, "file server" ) // ok + var wserver = flag.Int( "ws", 0, "web server" ) // ok var msleep = flag.Bool( "M", false, "sleep." ) //var swatch = flag.Bool( "W", false, "stop watch." ) @@ -100,6 +101,32 @@ os.Exit( 0 ) } + /* Here Servers */ + if *fserver != 0 { + addr := nw.GetLocalIP() + ":" + fmt.Sprintf( "%d", *fserver ) + log.Fatal( http.ListenAndServe( addr, http.FileServer( http.Dir( ".") ) ) ) + } + + if *wserver != 0 { + addr := nw.GetLocalIP() + ":" + fmt.Sprintf( "%d", *wserver ) + http.HandleFunc( "/", func( w http.ResponseWriter, r *http.Request ) { + if flag.NArg() == 0 { + fmt.Fprintf( w, "WebServer\n" ) + return + } + file := flag.Args()[0] + f, err := os.Open( file ) + if err != nil { + fmt.Fprintf( w, "WebServer\n" ) + } + if _, err = io.Copy( w, f ); err != nil { + log.Fatal( err ) + } + f.Close() + } ) + log.Fatal( http.ListenAndServe( addr, nil ) ) + } + /* Here Utility Function ( unix tool like tools ) */ if *msleep { fmt.Fprintln( os.Stderr, "not implement" )