Mercurial > mercurial > hgweb_rsearcher.cgi
comparison go/server.go @ 0:d3b8cd5aeb70
make repo.
| author | pyon@macmini |
|---|---|
| date | Sun, 30 Sep 2018 17:27:04 +0900 |
| parents | |
| children | eaa27e4ed5be |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:d3b8cd5aeb70 |
|---|---|
| 1 /* | |
| 2 server.go : server-program. | |
| 3 Version : 1.0 | |
| 4 Last Change: 2018-09-30 Sun 16:03:40. | |
| 5 | |
| 6 install to: server_root/ | |
| 7 | |
| 8 server_root/server | |
| 9 + db/ | |
| 10 + release/ | |
| 11 + images/ | |
| 12 */ | |
| 13 package main | |
| 14 | |
| 15 import( | |
| 16 "path/filepath" | |
| 17 "fmt" | |
| 18 "io" | |
| 19 "log" | |
| 20 "net" | |
| 21 "net/http" | |
| 22 "os" | |
| 23 ) | |
| 24 | |
| 25 func main() { | |
| 26 | |
| 27 var server string | |
| 28 var port = ":3910" | |
| 29 | |
| 30 addrs, err := net.InterfaceAddrs() | |
| 31 if err != nil { | |
| 32 log.Fatal( err ) | |
| 33 } | |
| 34 for _, a := range addrs { | |
| 35 if ipnet, ok := a.( *net.IPNet ); ok && !ipnet.IP.IsLoopback() { | |
| 36 if ipnet.IP.To4() != nil { | |
| 37 server = ipnet.IP.String() + port | |
| 38 } | |
| 39 } | |
| 40 } | |
| 41 | |
| 42 cwd, err := os.Getwd() | |
| 43 if err != nil { | |
| 44 log.Fatal( err ) | |
| 45 } | |
| 46 | |
| 47 fmt.Println( "server start [", server, "]" ) | |
| 48 http.HandleFunc( "/", func( w http.ResponseWriter, r *http.Request ) { | |
| 49 file := filepath.Join( cwd, filepath.FromSlash( r.URL.Path ) ) | |
| 50 fmt.Println( file ) | |
| 51 f, err := os.Open( file ) | |
| 52 if err != nil { | |
| 53 http.NotFound( w, r ) | |
| 54 return | |
| 55 } | |
| 56 defer f.Close() | |
| 57 io.Copy( w, f ) | |
| 58 } ) | |
| 59 log.Fatal( http.ListenAndServe( server, nil ) ) | |
| 60 } | |
| 61 |
