diff --git a/cmd/commander/main.go b/cmd/commander/main.go index 8a99c8d..cb3a528 100644 --- a/cmd/commander/main.go +++ b/cmd/commander/main.go @@ -9,7 +9,6 @@ import ( "log/slog" "os" - "github.com/BurntSushi/toml" "github.com/advanced-security/mrvacommander/config/mcc" "github.com/advanced-security/mrvacommander/interfaces/mci" "github.com/advanced-security/mrvacommander/lib/commander/lcmem" @@ -58,7 +57,7 @@ func main() { } // Read configuration - config := loadConfig("cconfig.toml") + config := mcc.LoadConfig("cconfig.toml") // Apply 'mode' flag switch *mode { @@ -89,28 +88,3 @@ func main() { // Run in the chosen mode } - -type MCConfig struct { - commander mcc.Commander - logger mcc.Logger - queue mcc.Queue - storage mcc.Storage - runner mcc.Runner -} - -func loadConfig(fname string) *MCConfig { - if _, err := os.Stat(fname); err != nil { - slog.Error("Configuration file %s not found", f) - os.Exit(1) - } - - var config MCConfig - - _, err := toml.DecodeFile(fname, &config) - if err != nil { - slog.Error("", err) - os.Exit(1) - } - - return &config -} diff --git a/config/mcc/system.go b/config/mcc/system.go new file mode 100644 index 0000000..734083b --- /dev/null +++ b/config/mcc/system.go @@ -0,0 +1,33 @@ +package mcc + +import ( + "log/slog" + "os" + + "github.com/BurntSushi/toml" +) + +type System struct { + commander Commander + logger Logger + queue Queue + storage Storage + runner Runner +} + +func LoadConfig(fname string) *System { + if _, err := os.Stat(fname); err != nil { + slog.Error("Configuration file %s not found", fname) + os.Exit(1) + } + + var config System + + _, err := toml.DecodeFile(fname, &config) + if err != nil { + slog.Error("", err) + os.Exit(1) + } + + return &config +}