func FillTaskSettingsDefaults(settings *config.Settings) { if len(settings.Tasks) == 0 { settings.Tasks = Aliases[TASKALIAS_DEFAULT] } if settings.TaskSettings == nil { settings.TaskSettings = make(map[string]map[string]interface{}) } //fill in per-task settings ... for _, t := range ListTasks() { if t.DefaultSettings != nil { if _, keyExists := settings.TaskSettings[t.Name]; !keyExists { settings.TaskSettings[t.Name] = t.DefaultSettings } else { //TODO go deeper still? for k, v := range t.DefaultSettings { taskSettings := settings.TaskSettings[t.Name] if _, keyExists = taskSettings[k]; !keyExists { taskSettings[k] = v } } } } } }