summaryrefslogtreecommitdiffstats
path: root/main.go
diff options
context:
space:
mode:
Diffstat (limited to 'main.go')
-rw-r--r--main.go49
1 files changed, 49 insertions, 0 deletions
diff --git a/main.go b/main.go
new file mode 100644
index 0000000..2f27aee
--- /dev/null
+++ b/main.go
@@ -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 := &registry.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())
+}