3
0
corteza/sam/flags.go
Tit Petric 7bf78fb4e0 upd(all): refactor
- moved rbac store and config to internal pkg,
- split auth authenticators to internal pkg,
- add rbac config object to internal/config,
- update package imports and references for auth,
- clean up main with pkg aliases
2018-09-13 12:05:06 +02:00

50 lines
890 B
Go

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