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()
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)
}