// Setup creates a new middleware with the given configuration func Setup(c *setup.Controller) (mid middleware.Middleware, err error) { var config *Config config, err = parseSearch(c) if err != nil { panic(err) } index, err := NewIndexer(config.Engine, indexer.Config{ HostName: config.HostName, IndexDirectory: config.IndexDirectory, }) if err != nil { panic(err) } ppl, err := NewPipeline(config, index) if err != nil { panic(err) } c.Startup = append(c.Startup, func() error { return ScanToPipe(c.Root, config, ppl, index) }) mid = func(next middleware.Handler) middleware.Handler { return Handler(next, config, index, ppl) } return }
// Git configures a new Git service routine. func Setup(c *setup.Controller) (middleware.Middleware, error) { git, err := parse(c) if err != nil { return nil, err } // loop through all repos and and start monitoring for i := range git { repo := git.Repo(i) // If a HookUrl is set, we switch to event based pulling. // Install the url handler if repo.HookUrl != "" { c.Startup = append(c.Startup, func() error { return repo.Pull() }) webhook := &WebHook{Repo: repo} return func(next middleware.Handler) middleware.Handler { webhook.Next = next return webhook }, nil } else { c.Startup = append(c.Startup, func() error { // Start service routine in background Start(repo) // Do a pull right away to return error return repo.Pull() }) } } return nil, err }