in ops.go [368:418]
func getTaskNamesList(dir string) []string {
m := make(map[interface{}]interface{})
var taskNames []string
if exists(dir, OPSFILE) {
dat, err := os.ReadFile(joinpath(dir, OPSFILE))
if err != nil {
return make([]string, 0)
}
err = yaml.Unmarshal(dat, &m)
if err != nil {
warn("error reading opsfile.yml")
return make([]string, 0)
}
tasksMap, ok := m["tasks"].(map[string]interface{})
if !ok {
// warn("error checking task list, perhaps no tasks defined?")
return make([]string, 0)
}
for k := range tasksMap {
taskNames = append(taskNames, k)
}
}
// for each subfolder, check if it has a opsfile.yaml
// if it does, add it to the list of tasks
// get subfolders
subfolders, err := os.ReadDir(dir)
if err != nil {
warn("error reading subfolders of", dir)
return taskNames
}
for _, f := range subfolders {
if f.IsDir() {
subfolder := joinpath(dir, f.Name())
if exists(subfolder, OPSFILE) {
// check if not contained
name := f.Name()
if !slices.Contains(taskNames, name) {
taskNames = append(taskNames, name)
}
}
}
}
return taskNames
}