lxc/config/file.go
func LoadConfig(path string) (*Config, error) {
	// Open the config file
	content, err := ioutil.ReadFile(path)
	if err != nil {
		return nil, fmt.Errorf("Unable to read the configuration file: %v", err)
	}

	// Decode the yaml document
	c := NewConfig(filepath.Dir(path), false)
	err = yaml.Unmarshal(content, &c)
	if err != nil {
		return nil, fmt.Errorf("Unable to decode the configuration: %v", err)
	}

	for k, r := range c.Remotes {
		if !r.Public && r.AuthType == "" {
			r.AuthType = "tls"
			c.Remotes[k] = r
		}
	}

	// Set default values
	if c.Remotes == nil {
		c.Remotes = make(map[string]Remote)
	}

	// Apply the static remotes
	for k, v := range StaticRemotes {
		if c.Remotes[k].Project != "" {
			v.Project = c.Remotes[k].Project
		}

		c.Remotes[k] = v
	}

	// NOTE: Remove this once we only see a small fraction of non-simplestreams users
	// Upgrade users to the "simplestreams" protocol
	images, ok := c.Remotes["images"]
	if ok && images.Protocol != ImagesRemote.Protocol && images.Addr == ImagesRemote.Addr {
		c.Remotes["images"] = ImagesRemote
		c.SaveConfig(path)
	}

	return c, nil
}
func LoadConfig(path string) (*Config, error) {
	// Open the config file
	content, err := ioutil.ReadFile(path)
	if err != nil {
		return nil, fmt.Errorf("Unable to read the configuration file: %v", err)
	}

	// Decode the yaml document
	c := NewConfig(filepath.Dir(path), false)
	err = yaml.Unmarshal(content, &c)
	if err != nil {
		return nil, fmt.Errorf("Unable to decode the configuration: %v", err)
	}

	for k, r := range c.Remotes {
		if !r.Public && r.AuthType == "" {
			r.AuthType = "tls"
			c.Remotes[k] = r
		}
	}

	// Set default values
	if c.Remotes == nil {
		c.Remotes = make(map[string]Remote)
	}

	// Apply the static remotes
	for k, v := range StaticRemotes {
		if c.Remotes[k].Project != "" {
			v.Project = c.Remotes[k].Project
		}

		c.Remotes[k] = v
	}

	// NOTE: Remove this once we only see a small fraction of non-simplestreams users
	// Upgrade users to the "simplestreams" protocol
	images, ok := c.Remotes["images"]
	if ok && images.Protocol != ImagesRemote.Protocol && images.Addr == ImagesRemote.Addr {
		c.Remotes["images"] = ImagesRemote
		c.SaveConfig(path)
	}

	return c, nil
}
func LoadConfig ( path string ) ( * Config , error ) { // Open the config file content , err := ioutil . ReadFile ( path ) if err != nil { return nil , fmt . Errorf ( " " , err ) } // Decode the yaml document c := NewConfig ( filepath . Dir ( path ) , false ) err = yaml . Unmarshal ( content , & c ) if err != nil { return nil , fmt . Errorf ( " " , err ) } for k , r := range c . Remotes { if ! r . Public && r . AuthType == " " { r . AuthType = " " c . Remotes [ k ] = r } } // Set default values if c . Remotes == nil { c . Remotes = make ( map [ string ] Remote ) } // Apply the static remotes for k , v := range StaticRemotes { if c . Remotes [ k ] . Project != " " { v . Project = c . Remotes [ k ] . Project } c . Remotes [ k ] = v } // NOTE: Remove this once we only see a small fraction of non-simplestreams users // Upgrade users to the "simplestreams" protocol images , ok := c . Remotes [ " " ] if ok && images . Protocol != ImagesRemote . Protocol && images . Addr == ImagesRemote . Addr { c . Remotes [ " " ] = ImagesRemote c . SaveConfig ( path ) } return c , nil }
// LoadConfig reads the configuration from the config path; if the path does
// not exist, it returns a default configuration.
LoadConfig reads the configuration from the config path ; if the path does not exist it returns a default configuration .