Started LDAP support
This commit is contained in:
31
util/startup/startup.go
Normal file
31
util/startup/startup.go
Normal file
@@ -0,0 +1,31 @@
|
||||
package startup
|
||||
|
||||
// Pre-defined queues...
|
||||
var (
|
||||
Logger StartupQueue
|
||||
PostFlags StartupQueue
|
||||
)
|
||||
|
||||
type StartupQueue struct {
|
||||
items []func()
|
||||
hasRun bool
|
||||
}
|
||||
|
||||
func (q *StartupQueue) Add(initFn ...func()) {
|
||||
if q.hasRun {
|
||||
panic("Added init function after startup")
|
||||
}
|
||||
for _, fn := range initFn {
|
||||
q.items = append(q.items, fn)
|
||||
}
|
||||
}
|
||||
|
||||
func (q *StartupQueue) Run() {
|
||||
if q.hasRun {
|
||||
panic("Attempted to run init function twice")
|
||||
}
|
||||
q.hasRun = true
|
||||
for _, fn := range q.items {
|
||||
fn()
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user