mirror of
https://github.com/kevin-DL/revel-cmd.git
synced 2026-01-11 18:54:31 +00:00
Reformat of code Allow user to use a mix of command line arguments and flags Enhance the import tool to detect missing packages in the modules side Added test cases for all commands
49 lines
1.3 KiB
Go
49 lines
1.3 KiB
Go
package utils
|
|
|
|
import (
|
|
"fmt"
|
|
"github.com/revel/cmd/logger"
|
|
"github.com/revel/config"
|
|
"os"
|
|
"strings"
|
|
)
|
|
|
|
var Logger = logger.New()
|
|
|
|
func InitLogger(basePath string, logLevel logger.LogLevel) {
|
|
newContext := config.NewContext()
|
|
if logLevel == logger.LvlDebug {
|
|
newContext.SetOption("log.debug.output", "stdout")
|
|
println("Debug on")
|
|
} else {
|
|
newContext.SetOption("log.debug.output", "off")
|
|
}
|
|
if logLevel >= logger.LvlInfo {
|
|
newContext.SetOption("log.info.output", "stdout")
|
|
} else {
|
|
newContext.SetOption("log.inf.output", "off")
|
|
}
|
|
|
|
newContext.SetOption("log.warn.output", "stderr")
|
|
newContext.SetOption("log.error.output", "stderr")
|
|
newContext.SetOption("log.crit.output", "stderr")
|
|
Logger.SetHandler(logger.InitializeFromConfig(basePath, newContext))
|
|
}
|
|
|
|
// This function is to throw a panic that may be caught by the packger so it can perform the needed
|
|
// imports
|
|
func Retry(format string, args ...interface{}) {
|
|
// Ensure the user's command prompt starts on the next line.
|
|
if !strings.HasSuffix(format, "\n") {
|
|
format += "\n"
|
|
}
|
|
fmt.Fprintf(os.Stderr, format, args...)
|
|
panic(format) // Panic instead of os.Exit so that deferred will run.
|
|
}
|
|
|
|
type LoggedError struct{ error }
|
|
|
|
func NewLoggedError(err error) *LoggedError {
|
|
return &LoggedError{err}
|
|
}
|