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