Mercurial > mercurial > hgweb_rsearcher.cgi
view 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 source
/* 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 ) ) }