flag.CommandLine.Parse(args[2:])
- var level safcm.LogLevel
- switch *optionLog {
- case "error":
- level = safcm.LogError
- case "info":
- level = safcm.LogInfo
- case "verbose":
- level = safcm.LogVerbose
- case "debug":
- level = safcm.LogDebug
- case "debug2":
- level = safcm.LogDebug2
- case "debug3":
- level = safcm.LogDebug3
- default:
- return fmt.Errorf("invalid -log value %q", *optionLog)
+ level, err := safcm.ParseLogLevel(*optionLog)
+ if err != nil {
+ return fmt.Errorf("-log: %v", err)
}
names := flag.Args()
var hosts []frontend.Host
for _, x := range toSync {
s := &Sync{
- host: x,
- config: cfg,
- allHosts: allHosts,
- allGroups: allGroups,
- isTTY: isTTY,
- }
+ host: x,
+ config: cfg,
+ allHosts: allHosts,
+ allGroups: allGroups,
+ isTTY: isTTY,
+ }
s.logFunc = func(level safcm.LogLevel, escaped bool,
msg string) {
loop.Log(s, level, escaped, msg)
func logEvent(x frontend.Event, level safcm.LogLevel, isTTY bool, failed *bool) {
// We have multiple event sources so this is somewhat ugly.
var prefix, data string
- var color Color
+ var color frontend.Color
if x.Error != nil {
prefix = "[error]"
data = x.Error.Error()
- color = ColorRed
+ color = frontend.ColorRed
// We logged an error, tell the caller
*failed = true
} else if x.Log.Level != 0 {
prefix = "[debug2]"
default:
prefix = fmt.Sprintf("[INVALID=%d]", x.Log.Level)
- color = ColorRed
+ color = frontend.ColorRed
}
data = x.Log.Text
} else {
x.ConnEvent.Data = "remote helper upload in progress"
default:
prefix = fmt.Sprintf("[INVALID=%d]", x.ConnEvent.Type)
- color = ColorRed
+ color = frontend.ColorRed
}
data = x.ConnEvent.Data
}
host := x.Host.Name()
if color != 0 {
- host = ColorString(isTTY, color, host)
+ host = frontend.ColorString(isTTY, color, host)
}
// Make sure to escape control characters to prevent terminal
// injection attacks
if !x.Escaped {
- data = EscapeControlCharacters(isTTY, data)
+ data = frontend.EscapeControlCharacters(isTTY, data)
}
log.Printf("%-9s [%s] %s", prefix, host, data)
}