X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=cmd%2Fsafcm%2Fsync_info.go;h=b0ee9ad919068bd8336e7753dc352840834bfc4b;hb=HEAD;hp=0df33e3eeaa302ef52c8a7d149e5f107d82812b1;hpb=5d6cc7f14a4bacc36bf3a23cd735a75ad4a90f1d;p=safcm%2Fsafcm.git diff --git a/cmd/safcm/sync_info.go b/cmd/safcm/sync_info.go index 0df33e3..b0ee9ad 100644 --- a/cmd/safcm/sync_info.go +++ b/cmd/safcm/sync_info.go @@ -1,19 +1,7 @@ // "sync" sub-command: collect information from remote host -// 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 . +// SPDX-License-Identifier: GPL-3.0-or-later +// Copyright (C) 2021-2024 Simon Ruderich package main @@ -28,17 +16,13 @@ import ( ) func (s *Sync) hostInfo(conn *rpc.Conn) ([]string, error) { - x, err := s.sendRecv(conn, safcm.MsgInfoReq{ + resp, err := s.loop.HostInfoMsg(s, conn, safcm.MsgInfoReq{ LogLevel: s.config.LogLevel, DetectGroups: s.config.DetectGroups, }) if err != nil { return nil, err } - resp, ok := x.(safcm.MsgInfoResp) - if !ok { - return nil, fmt.Errorf("unexpected response %v", x) - } if resp.Error != "" { return nil, fmt.Errorf("%s", resp.Error) } @@ -50,14 +34,19 @@ var infoGroupDetectedRegexp = regexp.MustCompile(`[^a-z0-9_-]+`) func hostInfoRespToGroups(resp safcm.MsgInfoResp) []string { groups := []string{ - config.GroupDetectedPrefix + "_" + resp.Goos, - config.GroupDetectedPrefix + "_" + resp.Goarch, + hostInfoDetectedGroupName(resp.Goos), + hostInfoDetectedGroupName(resp.Goarch), } for _, x := range resp.Output { - x = strings.TrimSpace(x) - x = strings.ToLower(x) - x = infoGroupDetectedRegexp.ReplaceAllString(x, "_") - groups = append(groups, config.GroupDetectedPrefix+"_"+x) + groups = append(groups, hostInfoDetectedGroupName(x)) } return groups } + +func hostInfoDetectedGroupName(x string) string { + x = strings.TrimSpace(x) + x = strings.ToLower(x) + x = infoGroupDetectedRegexp.ReplaceAllString(x, "_") + x = config.GroupDetectedPrefix + "_" + x + return x +}