feat: wire V2 architecture into CLI entry point (#540)

* feat: wire V2 architecture into CLI entry point
* fix: warn and exit early when no browsers found
This commit is contained in:
Roger
2026-04-04 14:11:08 +08:00
committed by GitHub
parent 00ad0e0bd4
commit 0ace27ce9a
6 changed files with 515 additions and 365 deletions
+27 -5
View File
@@ -7,6 +7,8 @@ import (
"github.com/moond4rk/hackbrowserdata/browser"
"github.com/moond4rk/hackbrowserdata/log"
"github.com/moond4rk/hackbrowserdata/output"
"github.com/moond4rk/hackbrowserdata/types"
"github.com/moond4rk/hackbrowserdata/utils/fileutil"
)
@@ -44,19 +46,39 @@ func Execute() {
if verbose {
log.SetVerbose()
}
browsers, err := browser.PickBrowsers(browserName, profilePath)
if err != nil {
log.Errorf("pick browsers %v", err)
log.Errorf("pick browsers: %v", err)
return err
}
if len(browsers) == 0 {
log.Warnf("no browsers found")
return nil
}
categories := types.AllCategories
if !isFullExport {
categories = types.NonSensitiveCategories()
}
w, err := output.NewWriter(outputDir, outputFormat)
if err != nil {
log.Errorf("create output writer: %v", err)
return err
}
for _, b := range browsers {
data, err := b.BrowsingData(isFullExport)
data, err := b.Extract(categories)
if err != nil {
log.Errorf("get browsing data error %v", err)
continue
log.Errorf("extract %s/%s: %v", b.BrowserName(), b.ProfileName(), err)
}
data.Output(outputDir, b.Name(), outputFormat)
w.Add(b.BrowserName(), b.ProfileName(), data)
}
if err := w.Write(); err != nil {
log.Errorf("write output: %v", err)
return err
}
if compress {