// Config: parse commands.yaml // SPDX-License-Identifier: GPL-3.0-or-later // Copyright (C) 2021-2024 Simon Ruderich package config import ( "fmt" "os" "path/filepath" "gopkg.in/yaml.v2" "ruderich.org/simon/safcm" ) func LoadCommands(group string) ([]*safcm.Command, error) { path := filepath.Join(group, "commands.yaml") var cmds []string x, err := os.ReadFile(path) if err != nil { if os.IsNotExist(err) { return nil, nil } return nil, err } err = yaml.UnmarshalStrict(x, &cmds) if err != nil { return nil, fmt.Errorf("%s: failed to load: %v", path, err) } var res []*safcm.Command for _, x := range cmds { res = append(res, &safcm.Command{ OrigGroup: group, Cmd: x, }) } return res, nil }