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>
This commit is contained in:
co-authored by
multica-agent
parent
876542b2de
commit
5a54834c5f
@@ -0,0 +1,36 @@
|
||||
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
|
||||
}
|
||||
Reference in New Issue
Block a user