return fmt.Errorf("no hosts found")
}
- isTTY := term.IsTerminal(int(os.Stdout.Fd()))
+ isTTY := term.IsTerminal(int(os.Stdout.Fd())) &&
+ term.IsTerminal(int(os.Stderr.Fd()))
done := make(chan bool)
// Collect events from all hosts and print them
func hostsToSync(names []string, allHosts *config.Hosts,
allGroups map[string][]string) ([]*config.Host, error) {
- detectedMap := make(map[string]bool)
- for _, x := range config.TransitivelyDetectedGroups(allGroups) {
- detectedMap[x] = true
- }
+ detectedMap := config.TransitivelyDetectedGroups(allGroups)
const detectedErr = `
nameMatched := make(map[string]bool)
// To detect typos we must check all given names but one host can be
// matched by multiple names (e.g. two groups with overlapping hosts)
- hostMatched := make(map[string]bool)
+ hostAdded := make(map[string]bool)
var res []*config.Host
for _, host := range allHosts.List {
if nameMap[host.Name] {
res = append(res, host)
- hostMatched[host.Name] = true
+ hostAdded[host.Name] = true
nameMatched[host.Name] = true
}
}
for _, x := range groups {
if nameMap[x] {
- if !hostMatched[host.Name] {
+ if !hostAdded[host.Name] {
res = append(res, host)
- hostMatched[host.Name] = true
+ hostAdded[host.Name] = true
}
nameMatched[x] = true
}
return nil
}
-func (s *Sync) logf(level safcm.LogLevel, escaped bool,
- format string, a ...interface{}) {
-
+func (s *Sync) log(level safcm.LogLevel, escaped bool, msg string) {
if s.config.LogLevel < level {
return
}
Host: s.host,
Log: Log{
Level: level,
- Text: fmt.Sprintf(format, a...),
+ Text: msg,
},
Escaped: escaped,
}
}
func (s *Sync) logDebugf(format string, a ...interface{}) {
- s.logf(safcm.LogDebug, false, format, a...)
+ s.log(safcm.LogDebug, false, fmt.Sprintf(format, a...))
}
func (s *Sync) logVerbosef(format string, a ...interface{}) {
- s.logf(safcm.LogVerbose, false, format, a...)
+ s.log(safcm.LogVerbose, false, fmt.Sprintf(format, a...))
}
// sendRecv sends a message over conn and waits for the response. Any MsgLog
}
log, ok := x.(safcm.MsgLog)
if ok {
- s.logf(log.Level, false, "%s", log.Text)
+ s.log(log.Level, false, log.Text)
continue
}
return x, nil