@@ -191,12 +191,22 @@ func (g *generator) generateFromEvents() {
191
191
watchers = append (watchers , watcher )
192
192
193
193
debouncedChan := newDebounceChannel (watcher , config .Wait )
194
- for _ = range debouncedChan {
194
+ for event : = range debouncedChan {
195
195
containers , err := g .getContainers ()
196
196
if err != nil {
197
197
log .Printf ("Error listing containers: %s\n " , err )
198
198
continue
199
199
}
200
+
201
+ if event .Status == "kill" {
202
+ for i := len (containers ) - 1 ; i >= 0 ; i -- {
203
+ if containers [i ].ID == event .ID {
204
+ containers [i ].State .Killing = true
205
+ break
206
+ }
207
+ }
208
+ }
209
+
200
210
changed := GenerateFile (config , containers )
201
211
if ! changed {
202
212
log .Printf ("Contents of %s did not change. Skipping notification '%s'" , config .Dest , config .NotifyCmd )
@@ -270,7 +280,7 @@ func (g *generator) generateFromEvents() {
270
280
time .Sleep (10 * time .Second )
271
281
break
272
282
}
273
- if event .Status == "start" || event .Status == "stop" || event .Status == "die" {
283
+ if event .Status == "start" || event .Status == "stop" || event .Status == "die" || event . Status == "kill" {
274
284
log .Printf ("Received event %s for container %s" , event .Status , event .ID [:12 ])
275
285
// fanout event to all watchers
276
286
for _ , watcher := range watchers {
@@ -375,6 +385,7 @@ func (g *generator) getContainers() ([]*RuntimeContainer, error) {
375
385
},
376
386
State : State {
377
387
Running : container .State .Running ,
388
+ Killing : false ,
378
389
},
379
390
Name : strings .TrimLeft (container .Name , "/" ),
380
391
Hostname : container .Config .Hostname ,
0 commit comments