44 lines
823 B
Go
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
|
|
}
|