5416: arv-git-httpd provides HTTP access to git repositories, using Arvados token...
[arvados.git] / services / arv-git-httpd / main.go
1 package main
2
3 import (
4         "flag"
5         "log"
6         "os"
7 )
8
9 type config struct {
10         Addr       string
11         GitCommand string
12         Root       string
13 }
14
15 var theConfig *config
16
17 func init() {
18         theConfig = &config{}
19         flag.StringVar(&theConfig.Addr, "address", "0.0.0.0:80",
20                 "Address to listen on, \"host:port\".")
21         flag.StringVar(&theConfig.GitCommand, "git-command", "/usr/bin/git",
22                 "Path to git executable. Each authenticated request will execute this program with a single argument, \"http-backend\".")
23         cwd, err := os.Getwd()
24         if err != nil {
25                 log.Fatalln("Getwd():", err)
26         }
27         flag.StringVar(&theConfig.Root, "repo-root", cwd,
28                 "Path to git repositories.")
29 }
30
31 func main() {
32         flag.Parse()
33         srv := &server{}
34         if err := srv.Start(); err != nil {
35                 log.Fatal(err)
36         }
37         log.Println("Listening at", srv.Addr)
38         if err := srv.Wait(); err != nil {
39                 log.Fatal(err)
40         }
41 }