@@ -47,37 +47,43 @@ func cmdEnrich(args []string) {
4747 _ , _ = fmt .Fprintf (os .Stderr , "error: %v\n " , err )
4848 os .Exit (1 )
4949 }
50- defer src .Cleanup ()
5150
51+ code := runEnrich (src .Dir , * scanDepth , * skip , * jsonFlag , * humanFlag , * verbose )
52+ src .Cleanup ()
53+ os .Exit (code )
54+ }
55+
56+ func runEnrich (dir string , scanDepth int , skip string , jsonFlag , humanFlag , verbose bool ) int {
5257 knowledgeBase , err := kb .Load (brief .KnowledgeFS )
5358 if err != nil {
5459 _ , _ = fmt .Fprintf (os .Stderr , "error loading knowledge base: %v\n " , err )
55- os . Exit ( 1 )
60+ return 1
5661 }
5762
58- engine := detect .New (knowledgeBase , src . Dir )
59- engine .ScanDepth = * scanDepth
60- if * skip != "" {
61- engine .SkipDirs = strings .Split (* skip , "," )
63+ engine := detect .New (knowledgeBase , dir )
64+ engine .ScanDepth = scanDepth
65+ if skip != "" {
66+ engine .SkipDirs = strings .Split (skip , "," )
6267 }
6368 r , err := engine .Run ()
6469 if err != nil {
6570 _ , _ = fmt .Fprintf (os .Stderr , "error: %v\n " , err )
66- os . Exit ( 1 )
71+ return 1
6772 }
6873
6974 ctx := context .Background ()
70- r .Enrichment = enrich (ctx , r , src . Dir )
75+ r .Enrichment = enrich (ctx , r , dir )
7176
72- useJSON := * jsonFlag || (! * humanFlag && ! isTTY ())
77+ useJSON := jsonFlag || (! humanFlag && ! isTTY ())
7378 if useJSON {
7479 if err := report .JSON (os .Stdout , r ); err != nil {
7580 _ , _ = fmt .Fprintf (os .Stderr , "error writing JSON: %v\n " , err )
76- os . Exit ( 1 )
81+ return 1
7782 }
7883 } else {
79- report .Human (os .Stdout , r , * verbose )
84+ report .Human (os .Stdout , r , verbose )
8085 }
86+ return 0
8187}
8288
8389func enrich (ctx context.Context , r * brief.Report , root string ) * brief.EnrichmentInfo {
@@ -87,7 +93,7 @@ func enrich(ctx context.Context, r *brief.Report, root string) *brief.Enrichment
8793 var mu sync.Mutex
8894
8995 // Published packages
90- purls := detectPublishedPURLs (root , r )
96+ purls := detectPublishedPURLs (root )
9197 if len (purls ) > 0 {
9298 wg .Add (1 )
9399 go func () {
@@ -124,7 +130,7 @@ func enrich(ctx context.Context, r *brief.Report, root string) *brief.Enrichment
124130
125131// detectPublishedPURLs figures out what packages this repo publishes by
126132// reading the project's own identity from manifest files.
127- func detectPublishedPURLs (root string , r * brief. Report ) []string {
133+ func detectPublishedPURLs (root string ) []string {
128134 var purls []string
129135
130136 // Go module
@@ -207,7 +213,7 @@ func pythonPackagePURL(root string) string {
207213 for _ , line := range strings .Split (string (data ), "\n " ) {
208214 line = strings .TrimSpace (line )
209215 if strings .HasPrefix (line , "name" ) && strings .Contains (line , "=" ) {
210- parts := strings .SplitN (line , "=" , 2 )
216+ parts := strings .SplitN (line , "=" , 2 ) //nolint:mnd // key=value split
211217 name := strings .TrimSpace (parts [1 ])
212218 if name != "" {
213219 return "pkg:pypi/" + name
@@ -424,8 +430,8 @@ func productFromFile(file string) string {
424430
425431func majorMinor (version string ) string {
426432 version = strings .TrimSpace (version )
427- parts := strings .SplitN (version , "." , 3 )
428- if len (parts ) < 2 {
433+ parts := strings .SplitN (version , "." , 3 ) //nolint:mnd // major.minor.patch
434+ if len (parts ) < 2 { //nolint:mnd // need at least major.minor
429435 return version
430436 }
431437 return parts [0 ] + "." + parts [1 ]
0 commit comments