annotate go/server.go @ 0:d3b8cd5aeb70

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