diff --git a/caddy.go b/caddy.go index 3225917ba..902a1a394 100644 --- a/caddy.go +++ b/caddy.go @@ -213,6 +213,9 @@ func (i *Instance) Restart(newCaddyfile Input) (*Instance, error) { } i.Stop() + // Execute instantiation events + EmitEvent(InstanceStartupEvent, newInst) + log.Println("[INFO] Reloading complete") return newInst, nil diff --git a/caddy/caddymain/run.go b/caddy/caddymain/run.go index 106b6e5e6..81f97f2a8 100644 --- a/caddy/caddymain/run.go +++ b/caddy/caddymain/run.go @@ -140,6 +140,9 @@ func Run() { mustLogFatalf("%v", err) } + // Execute instantiation events + caddy.EmitEvent(caddy.InstanceStartupEvent, instance) + // Twiddle your thumbs instance.Wait() } diff --git a/plugins.go b/plugins.go index 8fbc4ec9c..f5372184e 100644 --- a/plugins.go +++ b/plugins.go @@ -233,9 +233,10 @@ type EventName string // Define names for the various events const ( - StartupEvent EventName = "startup" - ShutdownEvent EventName = "shutdown" - CertRenewEvent EventName = "certrenew" + StartupEvent EventName = "startup" + ShutdownEvent EventName = "shutdown" + CertRenewEvent EventName = "certrenew" + InstanceStartupEvent EventName = "instancestartup" ) // EventHook is a type which holds information about a startup hook plugin.