]> ruderich.org/simon Gitweb - safcm/safcm.git/blobdiff - cmd/safcm/config/commands.go
Use SPDX license identifiers
[safcm/safcm.git] / cmd / safcm / config / commands.go
index 8a6f24014e4783c07defe314b1dd1b9db30238ae..a55cef494ef8e24d58b50debff2f949ef8f5e6ff 100644 (file)
@@ -1,19 +1,7 @@
 // Config: parse commands.yaml
 
-// Copyright (C) 2021  Simon Ruderich
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or
-// (at your option) any later version.
-//
-// This program is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-// GNU General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program.  If not, see <http://www.gnu.org/licenses/>.
+// SPDX-License-Identifier: GPL-3.0-or-later
+// Copyright (C) 2021-2024  Simon Ruderich
 
 package config
 
@@ -23,12 +11,14 @@ import (
        "path/filepath"
 
        "gopkg.in/yaml.v2"
+
+       "ruderich.org/simon/safcm"
 )
 
-func LoadCommands(group string) ([]string, error) {
+func LoadCommands(group string) ([]*safcm.Command, error) {
        path := filepath.Join(group, "commands.yaml")
 
-       var res []string
+       var cmds []string
        x, err := os.ReadFile(path)
        if err != nil {
                if os.IsNotExist(err) {
@@ -36,9 +26,17 @@ func LoadCommands(group string) ([]string, error) {
                }
                return nil, err
        }
-       err = yaml.UnmarshalStrict(x, &res)
+       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
 }