Merge branch 'master' into 6859-fix-invalid-manifests
[arvados.git] / services / arv-git-httpd / server.go
1 package main
2
3 import (
4         "net/http"
5         "net/http/cgi"
6
7         "git.curoverse.com/arvados.git/sdk/go/httpserver"
8 )
9
10 type server struct {
11         httpserver.Server
12 }
13
14 func (srv *server) Start() error {
15         gitHandler := &cgi.Handler{
16                 Path: theConfig.GitCommand,
17                 Dir:  theConfig.Root,
18                 Env: []string{
19                         "GIT_PROJECT_ROOT=" + theConfig.Root,
20                         "GIT_HTTP_EXPORT_ALL=",
21                 },
22                 InheritEnv: []string{"PATH"},
23                 Args:       []string{"http-backend"},
24         }
25         mux := http.NewServeMux()
26         mux.Handle("/", &authHandler{gitHandler})
27         srv.Handler = mux
28         srv.Addr = theConfig.Addr
29         return srv.Server.Start()
30 }