func LoadConfig(filepath string) { if _, err := os.Stat(filepath); os.IsNotExist(err) { gologit.Fatalf("%s not present or not readable", filepath) } buffer := &bytes.Buffer{} buffer.WriteString("[main]\n") f, err := os.Open(filepath) if err != nil { gologit.Printf("Error reading config file %s", filepath) gologit.Fatal(err) } defer f.Close() _, err = buffer.ReadFrom(f) if err != nil { gologit.Printf("Error reading config file %s", filepath) gologit.Fatal(err) } err = gcfg.ReadInto(&Config, buffer) if err != nil { gologit.Printf("Error parsing config file %s", filepath) gologit.Fatal(err) } }
func loadConfig(configFile string) *Config { cfg := Config{} fd, err := os.Open(configFile) if err != nil { log.Fatalf("Could not open %s", configFile) } err = gcfg.ReadInto(&cfg, fd) if err != nil { log.Fatalf("Failed to parse %s: %s", configFile, err) } fd.Close() return &cfg }
// newCloudDns creates a new instance of a Google Cloud DNS Interface. func newCloudDns(config io.Reader) (*Interface, error) { projectID, _ := metadata.ProjectID() // On error we get an empty string, which is fine for now. var tokenSource oauth2.TokenSource // Possibly override defaults with config below if config != nil { var cfg Config if err := gcfg.ReadInto(&cfg, config); err != nil { glog.Errorf("Couldn't read config: %v", err) return nil, err } glog.Infof("Using Google Cloud DNS provider config %+v", cfg) if cfg.Global.ProjectID != "" { projectID = cfg.Global.ProjectID } if cfg.Global.TokenURL != "" { tokenSource = gce.NewAltTokenSource(cfg.Global.TokenURL, cfg.Global.TokenBody) } } return CreateInterface(projectID, tokenSource) }