X-Git-Url: https://ruderich.org/simon/gitweb/?a=blobdiff_plain;f=cmd%2Fsafcm%2Fsync_info.go;h=213a4f77411dd115572f11c57c0f42172930f16c;hb=9506effbe395b9be30ba2b34702c51478e8043e4;hp=b0a85ee507f4603b2966eb0b7b6e8b6f74dba12a;hpb=f2f2bc47e8729548f3c10117f7f008b547c4afc5;p=safcm%2Fsafcm.git diff --git a/cmd/safcm/sync_info.go b/cmd/safcm/sync_info.go index b0a85ee..213a4f7 100644 --- a/cmd/safcm/sync_info.go +++ b/cmd/safcm/sync_info.go @@ -1,6 +1,6 @@ // "sync" sub-command: collect information from remote host -// Copyright (C) 2021 Simon Ruderich +// Copyright (C) 2021-2023 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 @@ -28,36 +28,37 @@ 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) } return hostInfoRespToGroups(resp), nil } -// Keep in sync with config/groups.go:groupNameRegexp +// Keep in sync with cmd/safcm/config/groups.go:groupNameRegexp 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 +}