mirror of
https://github.com/eosswedenorg/thalos
synced 2026-07-04 12:03:41 +02:00
app/config/config.go: rework api.
This commit is contained in:
parent
655dd730d7
commit
e5e15a7645
3 changed files with 25 additions and 25 deletions
|
|
@ -46,8 +46,8 @@ type Config struct {
|
||||||
Telegram TelegramConfig `yaml:"telegram"`
|
Telegram TelegramConfig `yaml:"telegram"`
|
||||||
}
|
}
|
||||||
|
|
||||||
func Parse(data []byte) (*Config, error) {
|
func New() Config {
|
||||||
cfg := Config{
|
return Config{
|
||||||
MessageCodec: "json",
|
MessageCodec: "json",
|
||||||
Log: log.Config{
|
Log: log.Config{
|
||||||
MaxFileSize: 10 * 1000 * 1000, // 10 mb
|
MaxFileSize: 10 * 1000 * 1000, // 10 mb
|
||||||
|
|
@ -61,14 +61,9 @@ func Parse(data []byte) (*Config, error) {
|
||||||
},
|
},
|
||||||
Redis: RedisConfig{
|
Redis: RedisConfig{
|
||||||
Addr: "localhost:6379",
|
Addr: "localhost:6379",
|
||||||
Password: "",
|
|
||||||
DB: 0,
|
|
||||||
Prefix: "ship",
|
Prefix: "ship",
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
err := yaml.Unmarshal(data, &cfg)
|
|
||||||
return &cfg, err
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func (ship *ShipConfig) UnmarshalYAML(value *yaml.Node) error {
|
func (ship *ShipConfig) UnmarshalYAML(value *yaml.Node) error {
|
||||||
|
|
@ -87,11 +82,15 @@ func (ship *ShipConfig) UnmarshalYAML(value *yaml.Node) error {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
func Load(filename string) (*Config, error) {
|
func (cfg *Config) ReadYAML(data []byte) error {
|
||||||
|
return yaml.Unmarshal(data, cfg)
|
||||||
|
}
|
||||||
|
|
||||||
|
func (cfg *Config) ReadFile(filename string) error {
|
||||||
bytes, err := os.ReadFile(filename)
|
bytes, err := os.ReadFile(filename)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
return Parse(bytes)
|
return cfg.ReadYAML(bytes)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -10,7 +10,7 @@ import (
|
||||||
shipclient "github.com/eosswedenorg-go/antelope-ship-client"
|
shipclient "github.com/eosswedenorg-go/antelope-ship-client"
|
||||||
)
|
)
|
||||||
|
|
||||||
func TestParse_Default(t *testing.T) {
|
func TestNew(t *testing.T) {
|
||||||
expected := Config{
|
expected := Config{
|
||||||
MessageCodec: "json",
|
MessageCodec: "json",
|
||||||
|
|
||||||
|
|
@ -34,12 +34,10 @@ func TestParse_Default(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
cfg, err := Parse([]byte(``))
|
require.Equal(t, New(), expected)
|
||||||
require.NoError(t, err)
|
|
||||||
require.Equal(t, cfg, &expected)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestParse(t *testing.T) {
|
func TestReadYAML(t *testing.T) {
|
||||||
expected := Config{
|
expected := Config{
|
||||||
Name: "ship-reader-1",
|
Name: "ship-reader-1",
|
||||||
Api: "http://127.0.0.1:8080",
|
Api: "http://127.0.0.1:8080",
|
||||||
|
|
@ -70,7 +68,8 @@ func TestParse(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
cfg, err := Parse([]byte(`
|
cfg := Config{}
|
||||||
|
err := cfg.ReadYAML([]byte(`
|
||||||
name: "ship-reader-1"
|
name: "ship-reader-1"
|
||||||
api: "http://127.0.0.1:8080"
|
api: "http://127.0.0.1:8080"
|
||||||
message_codec: "mojibake"
|
message_codec: "mojibake"
|
||||||
|
|
@ -97,10 +96,10 @@ redis:
|
||||||
`))
|
`))
|
||||||
|
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, cfg, &expected)
|
require.Equal(t, cfg, expected)
|
||||||
}
|
}
|
||||||
|
|
||||||
func TestParseShorthandShipUrl(t *testing.T) {
|
func TestReadYAMLShorthandShipUrl(t *testing.T) {
|
||||||
expected := Config{
|
expected := Config{
|
||||||
Name: "ship-reader-1",
|
Name: "ship-reader-1",
|
||||||
Api: "http://127.0.0.1:8080",
|
Api: "http://127.0.0.1:8080",
|
||||||
|
|
@ -128,7 +127,9 @@ func TestParseShorthandShipUrl(t *testing.T) {
|
||||||
},
|
},
|
||||||
}
|
}
|
||||||
|
|
||||||
cfg, err := Parse([]byte(`
|
cfg := New()
|
||||||
|
|
||||||
|
err := cfg.ReadYAML([]byte(`
|
||||||
name: "ship-reader-1"
|
name: "ship-reader-1"
|
||||||
api: "http://127.0.0.1:8080"
|
api: "http://127.0.0.1:8080"
|
||||||
ship: "127.0.0.1:8089"
|
ship: "127.0.0.1:8089"
|
||||||
|
|
@ -143,5 +144,5 @@ redis:
|
||||||
`))
|
`))
|
||||||
|
|
||||||
require.NoError(t, err)
|
require.NoError(t, err)
|
||||||
require.Equal(t, cfg, &expected)
|
require.Equal(t, cfg, expected)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -37,7 +37,7 @@ import (
|
||||||
// Global variables
|
// Global variables
|
||||||
// ---------------------------
|
// ---------------------------
|
||||||
|
|
||||||
var conf *config.Config
|
var conf config.Config
|
||||||
|
|
||||||
var shClient *shipclient.Stream
|
var shClient *shipclient.Stream
|
||||||
|
|
||||||
|
|
@ -241,8 +241,8 @@ func serverCmd(ctx *cli.Context) error {
|
||||||
}
|
}
|
||||||
|
|
||||||
// Parse config
|
// Parse config
|
||||||
conf, err = config.Load(ctx.Path("config"))
|
conf = config.New()
|
||||||
if err != nil {
|
if err = conf.ReadFile(ctx.Path("config")); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue