file_config.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  1. package config
  2. import (
  3. "eta/eta_mini_ht_api/common/contants"
  4. "fmt"
  5. "strings"
  6. "sync"
  7. )
  8. var (
  9. fileOnce sync.Once
  10. fileConfig *FileConfig
  11. )
  12. type FileOpts struct {
  13. Path string
  14. Notice string
  15. Disclaimer string
  16. PublicKey string
  17. }
  18. type FileConfig struct {
  19. BaseConfig
  20. opts FileOpts
  21. }
  22. func (f *FileConfig) GetNotice() string {
  23. if strings.HasSuffix(f.opts.Path, "/") {
  24. return fmt.Sprint(f.opts.Path, f.opts.Notice)
  25. }
  26. return fmt.Sprint(f.opts.Path, "/", f.opts.Notice)
  27. }
  28. func (f *FileConfig) GetPath() string {
  29. return f.opts.Path
  30. }
  31. func (f *FileConfig) GetPublicKey() string {
  32. return f.opts.PublicKey
  33. }
  34. func (f *FileConfig) GetDisclaimer() string {
  35. if strings.HasSuffix(f.opts.Path, "/") {
  36. return fmt.Sprint(f.opts.Path, f.opts.Disclaimer)
  37. }
  38. return fmt.Sprint(f.opts.Path, "/", f.opts.Disclaimer)
  39. }
  40. func (f *FileConfig) InitConfig() {
  41. opts := FileOpts{
  42. Path: f.GetString("path"),
  43. Notice: f.GetString("notice"),
  44. Disclaimer: f.GetString("disclaimer"),
  45. PublicKey: f.GetString("publicKey"),
  46. }
  47. f.opts = opts
  48. }
  49. func NewFileConfig() Config {
  50. if fileConfig == nil {
  51. fileOnce.Do(func() {
  52. fileConfig = &FileConfig{
  53. BaseConfig: BaseConfig{prefix: contants.FILE},
  54. opts: FileOpts{},
  55. }
  56. })
  57. }
  58. return fileConfig
  59. }
  60. func init() {
  61. Register(contants.FILE, NewFileConfig)
  62. }