@@ -60,45 +60,49 @@ func NewGitWatcher(
6060 }
6161}
6262
63- // Start runs the watcher loop and blocks until a fatal error occurs
64- func (w * GitWatcher ) Start () error {
65- zap .L ().Debug ("git watcher initialising, waiting for first state to be set" )
66-
67- // wait for the first config event to set the initial state
63+ func (w * GitWatcher ) __waitpoint__start_wait_init () {
6864 <- w .initialise
65+ }
6966
70- zap .L ().Debug ("git watcher initialised" , zap .Any ("initial_state" , w .state ))
71-
72- f := func () (err error ) {
73- select {
74- case newState := <- w .newState :
75- zap .L ().Debug ("git watcher received new state" ,
76- zap .Any ("new_state" , newState ))
77-
78- return w .doReconfigure (newState )
67+ func (w * GitWatcher ) __waitpoint__start_select_states () (err error ) {
68+ select {
69+ case newState := <- w .newState :
70+ zap .L ().Debug ("git watcher received new state" ,
71+ zap .Any ("new_state" , newState ))
7972
80- case <- w .stateReq :
81- w .stateRes <- w .state
73+ return w .doReconfigure (newState )
8274
83- case event := <- w .targetsWatcher .Events :
84- zap .L ().Debug ("git watcher received a target event" ,
85- zap .Any ("new_state" , event ))
75+ case <- w .stateReq :
76+ w .stateRes <- w .state
8677
87- if e := w .handle (event ); e != nil {
88- zap .L ().Error ("failed to handle event" ,
89- zap .String ("url" , event .URL ),
90- zap .Error (e ))
91- }
78+ case event := <- w .targetsWatcher .Events :
79+ zap .L ().Debug ("git watcher received a target event" ,
80+ zap .Any ("new_state" , event ))
9281
93- case e := <- errorMultiplex (w .errors , w .targetsWatcher .Errors ):
94- zap .L ().Error ("git error" ,
82+ if e := w .handle (event ); e != nil {
83+ zap .L ().Error ("failed to handle event" ,
84+ zap .String ("url" , event .URL ),
9585 zap .Error (e ))
9686 }
97- return
87+
88+ case e := <- errorMultiplex (w .errors , w .targetsWatcher .Errors ):
89+ zap .L ().Error ("git error" ,
90+ zap .Error (e ))
9891 }
92+ return
93+ }
94+
95+ // Start runs the watcher loop and blocks until a fatal error occurs
96+ func (w * GitWatcher ) Start () error {
97+ zap .L ().Debug ("git watcher initialising, waiting for first state to be set" )
98+
99+ // wait for the first config event to set the initial state
100+ w .__waitpoint__start_wait_init ()
101+
102+ zap .L ().Debug ("git watcher initialised" , zap .Any ("initial_state" , w .state ))
99103
100104 for {
101- err := f ()
105+ err := w . __waitpoint__start_select_states ()
102106 if err != nil {
103107 return err
104108 }
@@ -203,13 +207,18 @@ func (w *GitWatcher) watchTargets() (err error) {
203207 }()
204208 zap .L ().Debug ("created targets watcher, awaiting setup" )
205209
210+ err = w .__waitpoint__watch_targets (errs )
211+
212+ zap .L ().Debug ("targets watcher initialised" )
213+
214+ return
215+ }
216+
217+ func (w * GitWatcher ) __waitpoint__watch_targets (errs chan error ) (err error ) {
206218 select {
207219 case <- w .targetsWatcher .InitialDone :
208220 case err = <- errs :
209221 }
210-
211- zap .L ().Debug ("targets watcher initialised" )
212-
213222 return
214223}
215224
@@ -222,7 +231,7 @@ func (w *GitWatcher) handle(e gitwatch.Event) (err error) {
222231 zap .String ("target" , target .Name ),
223232 zap .String ("url" , target .RepoURL ),
224233 zap .Time ("timestamp" , e .Timestamp ))
225- w .send (target , e .Path , false )
234+ w .__waitpoint__send_target_task (target , e .Path , false )
226235 return nil
227236}
228237
@@ -257,7 +266,7 @@ func (w GitWatcher) executeTargets(targets []task.Target, shutdown bool) {
257266 zap .Int ("targets" , len (targets )))
258267
259268 for _ , t := range targets {
260- w .send (t , filepath .Join (w .directory , t .Name ), shutdown )
269+ w .__waitpoint__send_target_task (t , filepath .Join (w .directory , t .Name ), shutdown )
261270 }
262271}
263272
@@ -270,7 +279,7 @@ func (w GitWatcher) getTarget(url string) (target task.Target, exists bool) {
270279 return
271280}
272281
273- func (w GitWatcher ) send (target task.Target , path string , shutdown bool ) {
282+ func (w GitWatcher ) __waitpoint__send_target_task (target task.Target , path string , shutdown bool ) {
274283 w .bus <- task.ExecutionTask {
275284 Target : target ,
276285 Path : path ,
0 commit comments