config: add load/save config file
This commit is contained in:
@@ -12,8 +12,16 @@ import (
|
|||||||
log "github.com/sirupsen/logrus"
|
log "github.com/sirupsen/logrus"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
const ConfigFile = "/etc/rkkvm/rkkvm.yml"
|
||||||
|
|
||||||
func main() {
|
func main() {
|
||||||
|
if err := config.Load(ConfigFile); err != nil {
|
||||||
config.Init()
|
config.Init()
|
||||||
|
if err = config.Save(ConfigFile); err != nil {
|
||||||
|
log.Error(err)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
cfg := config.Get()
|
cfg := config.Get()
|
||||||
lvl, err := log.ParseLevel(cfg.LogLevel)
|
lvl, err := log.ParseLevel(cfg.LogLevel)
|
||||||
if err == nil {
|
if err == nil {
|
||||||
|
|||||||
@@ -2,7 +2,10 @@ package config
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"fmt"
|
"fmt"
|
||||||
|
"os"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
|
"gopkg.in/yaml.v3"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Config struct {
|
type Config struct {
|
||||||
@@ -107,3 +110,34 @@ func Init() {
|
|||||||
NanoKVMUISupport: true,
|
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
|
- /sys/kernel/config:/sys/kernel/config
|
||||||
- ./test_data:/data
|
- ./test_data:/data
|
||||||
- /dev:/dev # required, if you will use Mass-Storage-Device
|
- /dev:/dev # required, if you will use Mass-Storage-Device
|
||||||
|
- ./test_data/config:/etc/rkkvm
|
||||||
#devices:
|
#devices:
|
||||||
#- /dev/hidg0
|
#- /dev/hidg0
|
||||||
#- /dev/hidg1
|
#- /dev/hidg1
|
||||||
|
|||||||
Reference in New Issue
Block a user