Log Refactor Phase 2

This commit is contained in:
2026-05-07 15:36:40 +02:00
parent 26db69c9eb
commit 6ab5f05c41
2 changed files with 49 additions and 6 deletions
+49 -6
View File
@@ -27,10 +27,11 @@ type command struct {
}
type context struct {
stdout io.Writer
stderr io.Writer
cwd string
args []string
stdout io.Writer
stderr io.Writer
cwd string
args []string
logLevel logLevel
}
type spinner struct {
@@ -230,9 +231,12 @@ func Run(args []string) (int, error) {
printUsage(ctx.stdout)
return 0, nil
default:
cmdArgs, level := parseGlobalFlags(args[1:])
ctx.logLevel = level
ctx.args = append([]string{args[0]}, cmdArgs...)
for _, cmd := range commands {
if cmd.name == args[0] {
spin.configure(ctx.stderr, isInteractiveTTY(ctx.stderr) && strings.TrimSpace(os.Getenv("CI")) == "")
spin.configure(ctx.stderr, isInteractiveTTY(ctx.stderr) && strings.TrimSpace(os.Getenv("CI")) == "" && ctx.logLevel == logLevelNormal)
spin.start("running " + cmd.name)
if err := cmd.run(ctx); err != nil {
spin.stop()
@@ -247,6 +251,24 @@ func Run(args []string) (int, error) {
return 1, fmt.Errorf("unknown command %q", args[0])
}
func parseGlobalFlags(args []string) ([]string, logLevel) {
level := logLevelNormal
var filtered []string
for _, arg := range args {
switch arg {
case "--quiet":
level = logLevelQuiet
case "--verbose":
level = logLevelVerbose
case "--debug":
level = logLevelDebug
default:
filtered = append(filtered, arg)
}
}
return filtered, level
}
func newContext() (context, error) {
cwd, err := os.Getwd()
if err != nil {
@@ -294,6 +316,9 @@ func runBuildModule(ctx context) error {
}
result, err := pipeline.BuildModuleWithProgress(p, func(message string) {
if ctx.logLevel == logLevelQuiet {
return
}
spin.linebreak()
fmt.Fprintf(ctx.stdout, "[build-module] %s\n", message)
})
@@ -530,6 +555,9 @@ func runBuildHAKs(ctx context) error {
if err != nil {
return err
}
if ctx.logLevel > opts.logLevel {
opts.logLevel = ctx.logLevel
}
p, err = p.CloneWithHAKNames(opts.filteredHAKs)
if err != nil {
return err
@@ -953,6 +981,9 @@ func runBuildTopData(ctx context) error {
}
result, err := topdata.BuildAndPackageWithOptions(p, opts, func(message string) {
if ctx.logLevel == logLevelQuiet {
return
}
fmt.Fprintf(ctx.stdout, "[build-topdata] %s\n", message)
})
if err != nil {
@@ -993,6 +1024,9 @@ func runBuildTopPackage(ctx context) error {
}
result, err := topdata.BuildPackage(p, func(message string) {
if ctx.logLevel == logLevelQuiet {
return
}
fmt.Fprintf(ctx.stdout, "[build-top-package] %s\n", message)
})
if err != nil {
@@ -1041,6 +1075,9 @@ func runCompareTopData(ctx context) error {
}
result, err := topdata.Compare(p, func(message string) {
if ctx.logLevel == logLevelQuiet {
return
}
fmt.Fprintf(ctx.stdout, "[compare-topdata] %s\n", message)
})
if err != nil {
@@ -1077,6 +1114,9 @@ func runBuildWiki(ctx context) error {
}
result, err := topdata.BuildWikiWithOptions(p, opts, func(message string) {
if ctx.logLevel == logLevelQuiet {
return
}
fmt.Fprintf(ctx.stdout, "[build-wiki] %s\n", message)
})
if err != nil {
@@ -1117,6 +1157,9 @@ func runDeployWiki(ctx context) error {
}
result, err := topdata.DeployWikiWithOptions(p, opts, func(message string) {
if ctx.logLevel == logLevelQuiet {
return
}
fmt.Fprintf(ctx.stdout, "[deploy-wiki] %s\n", message)
})
if err != nil {
@@ -1384,7 +1427,7 @@ func loadProject(ctx context) (*project.Project, error) {
if err != nil {
return nil, err
}
if ctx.stderr != nil {
if ctx.stderr != nil && ctx.logLevel != logLevelQuiet {
fmt.Fprintf(ctx.stderr, "Loaded config: %s\n", p.ConfigSource.Name)
if p.ConfigSource.Legacy {
fmt.Fprintf(ctx.stderr, "Warning: %s is legacy repository configuration; migrate to %s.\n", project.LegacyConfigFile, project.ConfigFile)
BIN
View File
Binary file not shown.