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