package main import ( "fmt" "log" "net/http" "os" githttp "github.com/AaronO/go-git-http" ) func main() { var instanceName string args := os.Args if len(args) < 2 { instanceName = "default" fmt.Println("Loading default config") } else { instanceName = args[1] fmt.Printf("Loading instance: [%s] config", instanceName) } cfg, err := LoadConfig(os.Getenv("HOME") + "/.config/altgit/" + instanceName + ".cfg") if err != nil { log.Fatal("Could not load config file", err) } fmt.Printf("Start Server with RepoRoot: [%s]\n", cfg.RepoRoot) git := githttp.New(cfg.RepoRoot) http.Handle("/", git) if cfg.ServerTLSCertificate == "" || cfg.ServerTLSKey == "" { err := http.ListenAndServe(cfg.Endpoint, nil) if err != nil { log.Fatal("Could not start server", err) } } else { err := http.ListenAndServeTLS(cfg.Endpoint, cfg.ServerTLSCertificate, cfg.ServerTLSKey, nil) if err != nil { log.Fatal("Could not start TLS server", err) } } }