func main() { dry := flag.Bool("dry", false, "dry-run: does not start the server (for testing purpose)") configFile := flag.String("config", "/etc/gandalf.conf", "Gandalf configuration file") flag.Parse() err := config.ReadAndWatchConfigFile(*configFile) if err != nil { msg := `Could not find gandalf config file. Searched on %s. For an example conf check gandalf/etc/gandalf.conf file.\n %s` log.Panicf(msg, *configFile, err) } db.Connect() router := pat.New() router.Post("/user/:name/key", http.HandlerFunc(api.AddKey)) router.Del("/user/:name/key/:keyname", http.HandlerFunc(api.RemoveKey)) router.Get("/user/:name/keys", http.HandlerFunc(api.ListKeys)) router.Post("/user", http.HandlerFunc(api.NewUser)) router.Del("/user/:name", http.HandlerFunc(api.RemoveUser)) router.Post("/repository", http.HandlerFunc(api.NewRepository)) router.Post("/repository/grant", http.HandlerFunc(api.GrantAccess)) router.Del("/repository/revoke", http.HandlerFunc(api.RevokeAccess)) router.Del("/repository/:name", http.HandlerFunc(api.RemoveRepository)) router.Get("/repository/:name", http.HandlerFunc(api.GetRepository)) router.Put("/repository/:name", http.HandlerFunc(api.RenameRepository)) port, err := config.GetString("webserver:port") if err != nil { panic(err) } if !*dry { log.Fatal(http.ListenAndServe(port, router)) } }
func (s *S) SetUpSuite(c *C) { err := config.ReadConfigFile("../etc/gandalf.conf") c.Assert(err, IsNil) config.Set("database:url", "127.0.0.1:27017") config.Set("database:name", "gandalf_repository_tests") db.Connect() }
func main() { var err error log, err = syslog.New(syslog.LOG_INFO, "gandalf-listener") if err != nil { fmt.Fprintln(os.Stderr, err.Error()) panic(err.Error()) } err = config.ReadConfigFile("/etc/gandalf.conf") if err != nil { log.Err(err.Error()) fmt.Fprintln(os.Stderr, err.Error()) return } db.Connect() err = validateCmd() if err != nil { log.Err(err.Error()) fmt.Fprintln(os.Stderr, err.Error()) return } a := action() if a == "git-receive-pack" { executeAction(hasWritePermission, "You don't have access to write in this repository.", os.Stdout) return } if a == "git-upload-pack" { executeAction(hasReadPermission, "You don't have access to read this repository.", os.Stdout) return } }
func (s *S) SetUpSuite(c *gocheck.C) { err := config.ReadConfigFile("../etc/gandalf.conf") c.Assert(err, gocheck.IsNil) config.Set("database:url", "127.0.0.1:27017") config.Set("database:name", "gandalf_api_tests") db.Connect() s.tmpdir, err = commandmocker.Add("git", "") c.Assert(err, gocheck.IsNil) }
func (s *S) SetUpSuite(c *gocheck.C) { var err error log, err = syslog.New(syslog.LOG_INFO, "gandalf-listener") c.Check(err, gocheck.IsNil) err = config.ReadConfigFile("../etc/gandalf.conf") c.Check(err, gocheck.IsNil) config.Set("database:name", "gandalf_bin_tests") db.Connect() s.user, err = user.New("testuser", map[string]string{}) c.Check(err, gocheck.IsNil) // does not uses repository.New to avoid creation of bare git repo s.repo = &repository.Repository{Name: "myapp", Users: []string{s.user.Name}} err = db.Session.Repository().Insert(s.repo) c.Check(err, gocheck.IsNil) }
func (s *S) SetUpSuite(c *gocheck.C) { err := config.ReadConfigFile("../etc/gandalf.conf") c.Check(err, gocheck.IsNil) config.Set("database:name", "gandalf_user_tests") db.Connect() }