in lib/ec2macosinit/config.go [44:72]
func (c *InitConfig) ValidateAndIdentify() (err error) {
// Create keySet to store used keys
keySet := map[string]struct{}{}
// Loop through every module and check a few things...
for i := 0; i < len(c.Modules); i++ {
// Identify module type
err := c.Modules[i].identifyModule()
if err != nil {
return fmt.Errorf("ec2macosinit: error while identifying module: %s\n", err)
}
// Validate individual module
err = c.Modules[i].validateModule()
if err != nil {
return fmt.Errorf("ec2macosinit: error found in module (type: %s, priority: %d): %s\n", c.Modules[i].Type, c.Modules[i].PriorityGroup, err)
}
// Check that key name is unique for the current configuration
if _, ok := keySet[c.Modules[i].Name]; !ok {
// Key hasn't been used yet - add key to the set
keySet[c.Modules[i].Name] = struct{}{}
} else {
return fmt.Errorf("ec2macosinit: duplicate name found in config:%s\n", c.Modules[i].Name)
}
}
return nil
}