Files
domrichardson c9868b2108
Agent Release / build (push) Has been cancelled
Server Deploy / deploy (push) Has been cancelled
first commit
2026-06-15 13:58:45 +01:00

46 lines
931 B
Go

package config
import (
"os"
"time"
"gopkg.in/yaml.v3"
)
const ConfigPath = "/etc/keymanager/config.yaml"
type Config struct {
ServerURL string `yaml:"server_url"`
ServerID string `yaml:"server_id"`
PreRegToken string `yaml:"pre_reg_token"`
AgentToken string `yaml:"agent_token"`
PollInterval time.Duration `yaml:"poll_interval"`
TLS bool `yaml:"tls"`
}
func Load() (*Config, error) {
data, err := os.ReadFile(ConfigPath)
if err != nil {
return nil, err
}
var cfg Config
if err := yaml.Unmarshal(data, &cfg); err != nil {
return nil, err
}
if cfg.PollInterval == 0 {
cfg.PollInterval = 30 * time.Second
}
return &cfg, nil
}
func Save(cfg *Config) error {
data, err := yaml.Marshal(cfg)
if err != nil {
return err
}
if err := os.MkdirAll("/etc/keymanager", 0700); err != nil {
return err
}
return os.WriteFile(ConfigPath, data, 0600)
}