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 |