setup.go
func setup(c *caddy.Controller) error {
	git, err := parse(c)
	if err != nil {
		return err
	}

	// repos configured with webhooks
	var hookRepos []*Repo

	// functions to execute at startup
	var startupFuncs []func() error

	// 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.Hook.URL != "" {

			hookRepos = append(hookRepos, repo)

			startupFuncs = append(startupFuncs, func() error {
				return repo.Pull()
			})

		} else {
			startupFuncs = append(startupFuncs, func() error {

				// Start service routine in background
				Start(repo)

				// Do a pull right away to return error
				return repo.Pull()
			})
		}
	}

	// ensure the functions are executed once per server block
	// for cases like server1.com, server2.com { ... }
	c.OncePerServerBlock(func() error {
		for i := range startupFuncs {
			c.OnStartup(startupFuncs[i])
		}
		return nil
	})

	// if there are repo(s) with webhook
	// return handler
	if len(hookRepos) > 0 {
		webhook := &WebHook{Repos: hookRepos}
		httpserver.GetConfig(c).AddMiddleware(func(next httpserver.Handler) httpserver.Handler {
			webhook.Next = next
			return webhook
		})
	}

	return nil
}
func setup(c *caddy.Controller) error {
	git, err := parse(c)
	if err != nil {
		return err
	}

	// repos configured with webhooks
	var hookRepos []*Repo

	// functions to execute at startup
	var startupFuncs []func() error

	// 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.Hook.URL != "" {

			hookRepos = append(hookRepos, repo)

			startupFuncs = append(startupFuncs, func() error {
				return repo.Pull()
			})

		} else {
			startupFuncs = append(startupFuncs, func() error {

				// Start service routine in background
				Start(repo)

				// Do a pull right away to return error
				return repo.Pull()
			})
		}
	}

	// ensure the functions are executed once per server block
	// for cases like server1.com, server2.com { ... }
	c.OncePerServerBlock(func() error {
		for i := range startupFuncs {
			c.OnStartup(startupFuncs[i])
		}
		return nil
	})

	// if there are repo(s) with webhook
	// return handler
	if len(hookRepos) > 0 {
		webhook := &WebHook{Repos: hookRepos}
		httpserver.GetConfig(c).AddMiddleware(func(next httpserver.Handler) httpserver.Handler {
			webhook.Next = next
			return webhook
		})
	}

	return nil
}
func setup ( c * caddy . Controller ) error { git , err := parse ( c ) if err != nil { return err } // repos configured with webhooks var hookRepos [ ] * Repo // functions to execute at startup var startupFuncs [ ] func ( ) error // 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 . Hook . URL != " " { hookRepos = append ( hookRepos , repo ) startupFuncs = append ( startupFuncs , func ( ) error { return repo . Pull ( ) } ) } else { startupFuncs = append ( startupFuncs , func ( ) error { // Start service routine in background Start ( repo ) // Do a pull right away to return error return repo . Pull ( ) } ) } } // ensure the functions are executed once per server block // for cases like server1.com, server2.com { ... } c . OncePerServerBlock ( func ( ) error { for i := range startupFuncs { c . OnStartup ( startupFuncs [ i ] ) } return nil } ) // if there are repo(s) with webhook // return handler if len ( hookRepos ) > 0 { webhook := & WebHook { Repos : hookRepos } httpserver . GetConfig ( c ) . AddMiddleware ( func ( next httpserver . Handler ) httpserver . Handler { webhook . Next = next return webhook } ) } return nil }
// setup configures a new Git service routine.
setup configures a new Git service routine .