carlos / todomvc-bakeoff Public

Clone
git clone https://amadan.net/carlos/todomvc-bakeoff

Plain git — no account needed to clone.

Download

Download this file

1// Command refapp serves the bakeoff's reference fixture (package ref).
2// It is not a contestant, and builders never see it.
3package main
4
5import (
6 "flag"
7 "log"
8 "net"
9 "net/http"
10 "os"
11
12 "bakeoff/harness/refapp/ref"
13)
14
15func main() {
16 listen := flag.String("listen", "", "TCP address, e.g. 127.0.0.1:8080")
17 socket := flag.String("socket", "", "unix socket path")
18 flag.String("db", "", "ignored: refapp keeps data in memory")
19 shared := flag.String("shared", "shared", "directory holding base.css and index.css")
20 flag.Parse()
21 var ln net.Listener
22 var err error
23 origin := ""
24 switch {
25 case *socket != "":
26 os.Remove(*socket)
27 ln, err = net.Listen("unix", *socket)
28 origin = "https://" + os.Getenv("CARLOS_HOST")
29 case *listen != "":
30 ln, err = net.Listen("tcp", *listen)
31 origin = "http://" + *listen
32 default:
33 log.Fatal("need --listen or --socket")
34 }
35 if err != nil {
36 log.Fatal(err)
37 }
38 log.Fatal(http.Serve(ln, ref.NewApp(origin, *shared)))
39}
40