diff options
Diffstat (limited to 'main.go')
| -rw-r--r-- | main.go | 49 |
1 files changed, 49 insertions, 0 deletions
@@ -0,0 +1,49 @@ +package main + +import ( + "flag" + "log" + "net/http" + "os" + "strings" + "time" + + "git.wilk.cx/cr-browser/registry" + "git.wilk.cx/cr-browser/web" +) + +func main() { + httpAddr := flag.String("http", ":8080", "HTTP listen address") + flag.Parse() + + registryURL := os.Getenv("REGISTRY_URL") + if registryURL == "" { + registryURL = "http://localhost:5000" + } + extRegistryURL := os.Getenv("EXT_REGISTRY_URL") + if extRegistryURL == "" { + extRegistryURL = registryURL + } + registryHost := strings.TrimRight(strings.TrimPrefix(strings.TrimPrefix(extRegistryURL, "https://"), "http://"), "/") + + provider := ®istry.HTTPProvider{ + BaseURL: registryURL, + Client: &http.Client{ + Timeout: 10 * time.Second, + }, + } + + server, err := web.NewServer(provider, registryHost) + if err != nil { + log.Fatal(err) + } + + httpServer := &http.Server{ + Addr: *httpAddr, + Handler: server.Handler(), + ReadHeaderTimeout: 5 * time.Second, + } + + log.Printf("Listening on %s", *httpAddr) + log.Fatal(httpServer.ListenAndServe()) +} |