config: add load/save config file

This commit is contained in:
Artem
2024-11-04 20:28:18 +01:00
parent df0b972ab4
commit 7394151491
3 changed files with 44 additions and 1 deletions

View File

@@ -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
}