allow to work with multiple configs
Signed-off-by: Vasiliy Tolstov <v.tolstov@unistack.org>
This commit is contained in:
@@ -3,10 +3,8 @@ package main
|
||||
import (
|
||||
"context"
|
||||
"fmt"
|
||||
"io/fs"
|
||||
"os"
|
||||
"os/signal"
|
||||
"path/filepath"
|
||||
"time"
|
||||
|
||||
openapi_v3 "github.com/google/gnostic/openapiv3"
|
||||
@@ -64,67 +62,14 @@ func main() {
|
||||
l.Fatal(ctx, "failed to init meter", err)
|
||||
}
|
||||
|
||||
meters["default"] = m
|
||||
|
||||
l.Info(ctx, "try to parse config.yaml")
|
||||
f, err := os.Open("config.yaml")
|
||||
if err != nil {
|
||||
l.Fatal(ctx, "failed to open config", err)
|
||||
}
|
||||
meters[uuid.Nil.String()] = m
|
||||
|
||||
cfg := &config.Config{}
|
||||
|
||||
if err = config.Parse(f, cfg); err != nil {
|
||||
f.Close()
|
||||
l.Info(ctx, "try to load config")
|
||||
if err := config.Load(config.Filesytem, "config.yaml", cfg); err != nil {
|
||||
l.Fatal(ctx, "failed to open config", err)
|
||||
}
|
||||
f.Close()
|
||||
|
||||
if cfg.App.ChecksDir != "" {
|
||||
var configFiles []string
|
||||
|
||||
if !filepath.IsAbs(cfg.App.ChecksDir) {
|
||||
dir, _ := os.Getwd()
|
||||
cfg.App.ChecksDir = filepath.Clean(filepath.Join(dir, cfg.App.ChecksDir))
|
||||
}
|
||||
|
||||
err = filepath.WalkDir(cfg.App.ChecksDir, func(path string, info fs.DirEntry, err error) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
|
||||
if info.IsDir() || !info.Type().IsRegular() {
|
||||
return nil
|
||||
}
|
||||
|
||||
if filepath.Ext(info.Name()) != ".yaml" {
|
||||
return nil
|
||||
}
|
||||
|
||||
configFiles = append(configFiles, path)
|
||||
|
||||
return nil
|
||||
})
|
||||
if err != nil {
|
||||
l.Fatal(ctx, fmt.Sprintf("error loading config: %s", cfg.App.ChecksDir), err)
|
||||
}
|
||||
|
||||
for _, configFile := range configFiles {
|
||||
l.Info(ctx, "try to parse "+configFile)
|
||||
f, err := os.Open(configFile)
|
||||
if err != nil {
|
||||
l.Fatal(ctx, "failed to open config", err)
|
||||
}
|
||||
|
||||
checks := []*config.CheckConfig{}
|
||||
if err = config.Parse(f, &checks); err != nil {
|
||||
f.Close()
|
||||
l.Fatal(ctx, "failed to open config", err)
|
||||
}
|
||||
f.Close()
|
||||
cfg.App.Checks = append(cfg.App.Checks, checks...)
|
||||
}
|
||||
}
|
||||
|
||||
if !cfg.App.MultiUser {
|
||||
m.Init(
|
||||
@@ -214,7 +159,7 @@ func main() {
|
||||
|
||||
var mtr meter.Meter
|
||||
if !cfg.App.MultiUser {
|
||||
mtr = meters["default"]
|
||||
mtr = meters[uuid.Nil.String()]
|
||||
} else {
|
||||
if v, ok := meters[check.User]; ok && v != nil {
|
||||
mtr = v
|
||||
|
Reference in New Issue
Block a user