Mercurial > mercurial > hgweb_rsearcher.cgi
diff go/server.go @ 0:d3b8cd5aeb70
make repo.
author | pyon@macmini |
---|---|
date | Sun, 30 Sep 2018 17:27:04 +0900 |
parents | |
children | eaa27e4ed5be |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/go/server.go Sun Sep 30 17:27:04 2018 +0900 @@ -0,0 +1,61 @@ +/* + server.go : server-program. + Version : 1.0 + Last Change: 2018-09-30 Sun 16:03:40. + + install to: server_root/ + + server_root/server + + db/ + + release/ + + images/ +*/ +package main + +import( + "path/filepath" + "fmt" + "io" + "log" + "net" + "net/http" + "os" +) + +func main() { + + var server string + var port = ":3910" + + addrs, err := net.InterfaceAddrs() + if err != nil { + log.Fatal( err ) + } + for _, a := range addrs { + if ipnet, ok := a.( *net.IPNet ); ok && !ipnet.IP.IsLoopback() { + if ipnet.IP.To4() != nil { + server = ipnet.IP.String() + port + } + } + } + + cwd, err := os.Getwd() + if err != nil { + log.Fatal( err ) + } + + fmt.Println( "server start [", server, "]" ) + http.HandleFunc( "/", func( w http.ResponseWriter, r *http.Request ) { + file := filepath.Join( cwd, filepath.FromSlash( r.URL.Path ) ) + fmt.Println( file ) + f, err := os.Open( file ) + if err != nil { + http.NotFound( w, r ) + return + } + defer f.Close() + io.Copy( w, f ) + } ) + log.Fatal( http.ListenAndServe( server, nil ) ) +} +