From ddc5465b08c1d17d2b2a8f8431c457b14e71970e Mon Sep 17 00:00:00 2001 From: Daniel Date: Mon, 22 Oct 2018 17:06:27 +0200 Subject: [PATCH] Allow nil functions for modules --- modules/modules.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/modules/modules.go b/modules/modules.go index 3b29c78..5b4f1ba 100644 --- a/modules/modules.go +++ b/modules/modules.go @@ -33,6 +33,10 @@ type Module struct { dependencies []string } +func dummyAction() error { + return nil +} + // Register registers a new module. func Register(name string, prep, start, stop func() error, dependencies ...string) *Module { newModule := &Module{ @@ -43,6 +47,18 @@ func Register(name string, prep, start, stop func() error, dependencies ...strin stop: stop, dependencies: dependencies, } + + // replace nil arguments with dummy action + if newModule.prep == nil { + newModule.prep = dummyAction + } + if newModule.start == nil { + newModule.start = dummyAction + } + if newModule.stop == nil { + newModule.stop = dummyAction + } + modulesLock.Lock() defer modulesLock.Unlock() modulesOrder = append(modulesOrder, newModule)