package config import ( "eta/eta_mini_ht_api/common/contants" "fmt" "strings" "sync" ) var ( fileOnce sync.Once fileConfig *FileConfig ) type FileOpts struct { Path string Notice string Disclaimer string PublicKey string } type FileConfig struct { BaseConfig opts FileOpts } func (f *FileConfig) GetNotice() string { if strings.HasSuffix(f.opts.Path, "/") { return fmt.Sprint(f.opts.Path, f.opts.Notice) } return fmt.Sprint(f.opts.Path, "/", f.opts.Notice) } func (f *FileConfig) GetPath() string { return f.opts.Path } func (f *FileConfig) GetPublicKey() string { return f.opts.PublicKey } func (f *FileConfig) GetDisclaimer() string { if strings.HasSuffix(f.opts.Path, "/") { return fmt.Sprint(f.opts.Path, f.opts.Disclaimer) } return fmt.Sprint(f.opts.Path, "/", f.opts.Disclaimer) } func (f *FileConfig) InitConfig() { opts := FileOpts{ Path: f.GetString("path"), Notice: f.GetString("notice"), Disclaimer: f.GetString("disclaimer"), PublicKey: f.GetString("publicKey"), } f.opts = opts } func NewFileConfig() Config { if fileConfig == nil { fileOnce.Do(func() { fileConfig = &FileConfig{ BaseConfig: BaseConfig{prefix: contants.FILE}, opts: FileOpts{}, } }) } return fileConfig } func init() { Register(contants.FILE, NewFileConfig) }