CI / test (pull_request) Failing after 2m2s
Add text and JSON formatters with real-time progress via traverser hooks, summary statistics, and CLI integration for --show-* and --json flags. Co-authored-by: multica-agent <github@multica.ai>
37 lines
752 B
Go
37 lines
752 B
Go
package output
|
|
|
|
import (
|
|
"context"
|
|
"fmt"
|
|
|
|
"github.com/hits/ExploreDNS/internal/traverse"
|
|
)
|
|
|
|
func RunTraversal(ctx context.Context, traverser *traverse.Traverser, cfg *Config, formatter Formatter, domain string) ([]traverse.TraversalResult, error) {
|
|
if traverser == nil {
|
|
return nil, fmt.Errorf("traverser is required")
|
|
}
|
|
if cfg == nil {
|
|
cfg = DefaultConfig()
|
|
}
|
|
if formatter == nil {
|
|
formatter = NewFormatter(cfg, nil)
|
|
}
|
|
|
|
traverser.SetHooks(AttachHooks(cfg, formatter))
|
|
|
|
results, err := traverser.Traverse(ctx, domain)
|
|
if err != nil {
|
|
return results, err
|
|
}
|
|
|
|
if err := formatter.WriteSummary(results); err != nil {
|
|
return results, err
|
|
}
|
|
if err := formatter.Flush(); err != nil {
|
|
return results, err
|
|
}
|
|
|
|
return results, nil
|
|
}
|