3
0
corteza/system/flags.go
Tit Petric fdf24b3e2c Refactor for new system service
- upd(all): indent spec.json files on all apps
- upd(auth): rename auth app to cmd
- upd(sam): move orgs, teams to system
- upd(system): extend spec.json for check
- upd(codegen): include system/
- upd(codegen): always generate spec files
- upd(sam): references from auth to system
2018-11-05 12:04:04 +01:00

58 lines
1.1 KiB
Go

package service
import (
"github.com/pkg/errors"
"github.com/crusttech/crust/internal/config"
)
type (
appFlags struct {
http *config.HTTP
monitor *config.Monitor
db *config.Database
oidc *config.OIDC
//jwt *config.JWT
}
)
var flags *appFlags
func (c *appFlags) Validate() error {
if c == nil {
return errors.New("AUTH flags are not initialized, need to call Flags() or FullFlags()")
}
if err := c.http.Validate(); err != nil {
return err
}
if err := c.monitor.Validate(); err != nil {
return err
}
if err := c.db.Validate(); err != nil {
return err
}
if err := c.oidc.Validate(); err != nil {
return err
}
//if err := c.jwt.Validate(); err != nil {
// return err
//}
return nil
}
func Flags(prefix ...string) {
if flags != nil {
return
}
if len(prefix) == 0 {
panic("auth.Flags() needs prefix on first call")
}
flags = &appFlags{
new(config.HTTP).Init(prefix...),
new(config.Monitor).Init(prefix...),
new(config.Database).Init(prefix...),
new(config.OIDC).Init(prefix...),
//new(config.JWT).Init(prefix...),
}
}