// readConfig reads and parses the configuration for all projects from a configReader.
readConfig reads and parses the configuration for all projects from a configReader.
// readConfig reads and parses the configuration for all projects from a configReader .
func readConfig(r configReader, l *[]projectConfig) (err error) {
	if err = readProjectsList(r, l); err != nil {
		return err
	}
	for i, _ := range *l {
		c := &((*l)[i])
		if err = readProjectConfig(r, c); err != nil {
			return fmt.Errorf("Error reading config for %v %v: %v", c.customerName, c.projectName, err)
		}
	}
	return nil
}
func readConfig ( r configReader , l * [ ] projectConfig ) ( err error ) { if err = readProjectsList ( r , l ) ; err != nil { return err } for i , _ := range * l { c := & ( ( * l ) [ i ] ) if err = readProjectConfig ( r , c ) ; err != nil { return fmt . Errorf ( " " , c . customerName , c . projectName , err ) } } return nil }
readConfig reads and parses the configuration for all projects from a configReader.
readConfig reads and parses the configuration for all projects from a configReader .
// Then, based on the customer list, we read and parse all the project configs.