config: add load/save config file
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user