Mercurial > mercurial > hgweb_rsearcher.cgi
view go/server.go @ 2:7fe3417cefc8
GUI.
author | pyon@macmini |
---|---|
date | Tue, 02 Oct 2018 21:20:05 +0900 |
parents | eaa27e4ed5be |
children | db4813125eb8 |
line wrap: on
line source
/* server.go : server-program. Version : 1.0 Last Change: 2018-10-01 Mon 22:58:23. 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" var server_root = filepath.Dir (os.Args[0] ) 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 } } } fmt.Println( "server start [", server, "]" ) http.HandleFunc( "/", func( w http.ResponseWriter, r *http.Request ) { file := filepath.Join( server_root, 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 ) ) }