Files
sunhpc-go/internal/config/loaders.go
2026-02-14 05:36:00 +08:00

44 lines
823 B
Go

package config
import (
"os"
"gopkg.in/yaml.v3"
)
func LoadSunHPC() (*SunHPCConfig, error) {
return loadYAML[SunHPCConfig](SunHPCFile)
}
func LoadNodes() (*NodesConfig, error) {
return loadYAML[NodesConfig](NodesFile)
}
func LoadNetwork() (*NetworkConfig, error) {
return loadYAML[NetworkConfig](NetworkFile)
}
func LoadDisks() (*DisksConfig, error) {
return loadYAML[DisksConfig](DisksFile)
}
func LoadServices() (*ServicesConfig, error) {
return loadYAML[ServicesConfig](ServicesFile)
}
func LoadFirewall() (*FirewallConfig, error) {
return loadYAML[FirewallConfig](FirewallFile)
}
func loadYAML[T any](path string) (*T, error) {
data, err := os.ReadFile(path)
if err != nil {
return nil, err
}
var cfg T
if err := yaml.Unmarshal(data, &cfg); err != nil {
return nil, err
}
return &cfg, nil
}