config: add load/save config file
This commit is contained in:
@@ -12,8 +12,16 @@ import (
|
||||
log "github.com/sirupsen/logrus"
|
||||
)
|
||||
|
||||
const ConfigFile = "/etc/rkkvm/rkkvm.yml"
|
||||
|
||||
func main() {
|
||||
if err := config.Load(ConfigFile); err != nil {
|
||||
config.Init()
|
||||
if err = config.Save(ConfigFile); err != nil {
|
||||
log.Error(err)
|
||||
}
|
||||
}
|
||||
|
||||
cfg := config.Get()
|
||||
lvl, err := log.ParseLevel(cfg.LogLevel)
|
||||
if err == nil {
|
||||
|
||||
@@ -2,7 +2,10 @@ package config
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
"os"
|
||||
"strings"
|
||||
|
||||
"gopkg.in/yaml.v3"
|
||||
)
|
||||
|
||||
type Config struct {
|
||||
@@ -107,3 +110,34 @@ func Init() {
|
||||
NanoKVMUISupport: true,
|
||||
}
|
||||
}
|
||||
|
||||
func Load(fname string) error {
|
||||
yamlData, err := os.ReadFile(fname)
|
||||
if err != nil {
|
||||
return fmt.Errorf("config: couldn't read config file: %w", err)
|
||||
}
|
||||
|
||||
var cfg Config
|
||||
err = yaml.Unmarshal(yamlData, &cfg)
|
||||
if err != nil {
|
||||
return fmt.Errorf("config: couldn't parse config file: %w", err)
|
||||
}
|
||||
|
||||
c = cfg
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func Save(fname string) error {
|
||||
data, err := yaml.Marshal(c)
|
||||
if err != nil {
|
||||
return fmt.Errorf("config: failed to marshal config: %w", err)
|
||||
}
|
||||
|
||||
err = os.WriteFile(fname, data, 0o660)
|
||||
if err != nil {
|
||||
return fmt.Errorf("config: failed to write config: %w", err)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@ services:
|
||||
- /sys/kernel/config:/sys/kernel/config
|
||||
- ./test_data:/data
|
||||
- /dev:/dev # required, if you will use Mass-Storage-Device
|
||||
- ./test_data/config:/etc/rkkvm
|
||||
#devices:
|
||||
#- /dev/hidg0
|
||||
#- /dev/hidg1
|
||||
|
||||
Reference in New Issue
Block a user