sshtargate/config.go

39 lines
619 B
Go

package main
import (
"fmt"
"io/ioutil"
"log"
"gopkg.in/yaml.v2"
)
type portalConfig struct {
Command string
Host []string `yaml:",flow"`
}
type appConfig struct {
Portals map[string]*portalConfig
}
var config = &appConfig{}
func readConfig(configPath string) error {
configData, err := ioutil.ReadFile(configPath)
if err != nil {
return fmt.Errorf("failed to read file: %s", err)
}
err = yaml.Unmarshal(configData, config)
if err != nil {
return fmt.Errorf("failed to parse file: %s", err)
}
if len(config.Portals) == 0 {
log.Println("Warning: No portals are defined")
}
return nil
}