"log"
"os"
"os/signal"
+ "runtime"
"sort"
"strings"
"sync"
os.Exit(1)
}
+ if runtime.GOOS == "windows" {
+ log.Print("WARNING: Windows support is experimental!")
+ }
+
cfg, allHosts, allGroups, err := LoadBaseFiles()
if err != nil {
return err
}()
// Connect to remote host
- err := conn.DialSSH(s.host.SshUser, s.host.Name, s.config.SshConfig)
+ user := s.host.SshUser
+ if user == "" {
+ user = s.config.SshUser
+ }
+ err := conn.DialSSH(user, s.host.Name, s.config.SshConfig)
if err != nil {
return err
}
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