Set up nested directory structure for interfaces, configuration, structs, libraries
This commit is contained in:
committed by
=Michael Hohn
parent
12595077c7
commit
d38b561309
@@ -9,7 +9,6 @@ import (
|
|||||||
"log/slog"
|
"log/slog"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
"github.com/BurntSushi/toml"
|
|
||||||
"github.com/advanced-security/mrvacommander/config/mcc"
|
"github.com/advanced-security/mrvacommander/config/mcc"
|
||||||
"github.com/advanced-security/mrvacommander/interfaces/mci"
|
"github.com/advanced-security/mrvacommander/interfaces/mci"
|
||||||
"github.com/advanced-security/mrvacommander/lib/commander/lcmem"
|
"github.com/advanced-security/mrvacommander/lib/commander/lcmem"
|
||||||
@@ -58,7 +57,7 @@ func main() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Read configuration
|
// Read configuration
|
||||||
config := loadConfig("cconfig.toml")
|
config := mcc.LoadConfig("cconfig.toml")
|
||||||
|
|
||||||
// Apply 'mode' flag
|
// Apply 'mode' flag
|
||||||
switch *mode {
|
switch *mode {
|
||||||
@@ -89,28 +88,3 @@ func main() {
|
|||||||
// Run in the chosen mode
|
// 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
|
|
||||||
}
|
|
||||||
|
|||||||
33
config/mcc/system.go
Normal file
33
config/mcc/system.go
Normal file
@@ -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
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user