Refactor config provider (#24245)
This PR introduces more abstract about `ConfigProvider` and hides more `ini` references. --------- Co-authored-by: delvh <dev.lh@web.de>
This commit is contained in:
parent
56d4893b2a
commit
5cf7da63ee
17 changed files with 227 additions and 164 deletions
|
@ -6,15 +6,13 @@ package setting
|
|||
import (
|
||||
"path/filepath"
|
||||
"reflect"
|
||||
|
||||
ini "gopkg.in/ini.v1"
|
||||
)
|
||||
|
||||
// Storage represents configuration of storages
|
||||
type Storage struct {
|
||||
Type string
|
||||
Path string
|
||||
Section *ini.Section
|
||||
Section ConfigSection
|
||||
ServeDirect bool
|
||||
}
|
||||
|
||||
|
@ -30,7 +28,7 @@ func (s *Storage) MapTo(v interface{}) error {
|
|||
return nil
|
||||
}
|
||||
|
||||
func getStorage(rootCfg ConfigProvider, name, typ string, targetSec *ini.Section) Storage {
|
||||
func getStorage(rootCfg ConfigProvider, name, typ string, targetSec ConfigSection) Storage {
|
||||
const sectionName = "storage"
|
||||
sec := rootCfg.Section(sectionName)
|
||||
|
||||
|
@ -52,7 +50,7 @@ func getStorage(rootCfg ConfigProvider, name, typ string, targetSec *ini.Section
|
|||
storage.Section = targetSec
|
||||
storage.Type = typ
|
||||
|
||||
overrides := make([]*ini.Section, 0, 3)
|
||||
overrides := make([]ConfigSection, 0, 3)
|
||||
nameSec, err := rootCfg.GetSection(sectionName + "." + name)
|
||||
if err == nil {
|
||||
overrides = append(overrides, nameSec)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue