* Never export symbols that's not needed outside of the package.
* Avoid global state at (almost) all cost.
* This is a project with a long history; assume that a similiar problem has been solved before, look hard for helper functions before creating new ones.
+* In tests, use `qt` matchers (e.g. `b.Assert(err, qt.ErrorMatches, ...)`) instead of raw `if`/`t.Fatal` checks.
* Use `./check.sh ./somepackage/...` when iterating.
* Use `./check.sh` when you're done.
gc bool
poll string
forceSyncStatic bool
+ panicOnWarning bool
// Profile flags (for debugging of performance problems)
cpuprofile string
}
}
+ var logHookLast func(e *logg.Entry) error
+ if r.panicOnWarning {
+ logHookLast = loggers.PanicOnWarningHook
+ }
+
optsLogger := loggers.Options{
DistinctLevel: logg.LevelWarn,
Level: level,
StdOut: r.StdOut,
StdErr: r.StdErr,
StoreErrors: running,
+ HandlerPost: logHookLast,
}
return loggers.New(optsLogger), nil
cmd.Flags().BoolVar(&r.gc, "gc", false, "enable to run some cleanup tasks (remove unused cache files) after the build")
cmd.Flags().StringVar(&r.poll, "poll", "", "set this to a poll interval, e.g --poll 700ms, to use a poll based approach to watch for file system changes")
_ = cmd.RegisterFlagCompletionFunc("poll", cobra.NoFileCompletions)
- cmd.Flags().Bool("panicOnWarning", false, "panic on first WARNING log")
+ cmd.Flags().BoolVar(&r.panicOnWarning, "panicOnWarning", false, "panic on first WARNING log")
cmd.Flags().Bool("templateMetrics", false, "display metrics about template executions")
cmd.Flags().Bool("templateMetricsHints", false, "calculate some improvement hints when combined with --templateMetrics")
cmd.Flags().BoolVar(&r.forceSyncStatic, "forceSyncStatic", false, "copy all files when static is changed.")
w = &s.logBuff
}
+ var logHookLast func(e *logg.Entry) error
+ if s.Cfg.PanicOnWarning {
+ logHookLast = loggers.PanicOnWarningHook
+ }
+
logger := loggers.New(
loggers.Options{
StdOut: w,
StdErr: w,
Level: s.Cfg.LogLevel,
DistinctLevel: logg.LevelWarn,
+ HandlerPost: logHookLast,
},
)
// The log level to use.
LogLevel logg.Level
+ // Whether to panic on warnings.
+ PanicOnWarning bool
+
// Whether it needs the real file system (e.g. for js.Build tests).
NeedsOsFS bool