@@ -90,17 +90,7 @@ func findLicenseFromEnvDir(pkg types.Package, prefix string) ([]string, error) {
90
90
return nil , xerrors .Errorf ("incorrect packageJSON file pattern: %w" , err )
91
91
}
92
92
if matched {
93
- file , err := os .Open (filepath .Join (condaMetaDir , entry .Name ()))
94
- if err != nil {
95
- return nil , xerrors .Errorf ("unable to open packageJSON file: %w" , err )
96
- }
97
- packageJson , _ , err := meta .NewParser ().Parse (file )
98
- if err != nil {
99
- return nil , xerrors .Errorf ("unable to parse packageJSON file: %w" , err )
100
- }
101
- // packageJson always contain only 1 element
102
- // cf. https://github.com/aquasecurity/trivy/blob/c3192f061d7e84eaf38df8df7c879dc00b4ca137/pkg/dependency/parser/conda/meta/parse.go#L39-L45
103
- return packageJson [0 ].Licenses , nil
93
+ return licenseFromPackageJson (condaMetaDir , entry .Name ())
104
94
}
105
95
}
106
96
return nil , xerrors .Errorf ("meta file didn't find" )
@@ -117,3 +107,20 @@ func (a environmentAnalyzer) Type() analyzer.Type {
117
107
func (a environmentAnalyzer ) Version () int {
118
108
return version
119
109
}
110
+
111
+ func licenseFromPackageJson (condaMetaDir , fileName string ) ([]string , error ) {
112
+ file , err := os .Open (filepath .Join (condaMetaDir , fileName ))
113
+ if err != nil {
114
+ return nil , xerrors .Errorf ("unable to open packageJSON file: %w" , err )
115
+ }
116
+
117
+ defer file .Close ()
118
+
119
+ packageJson , _ , err := meta .NewParser ().Parse (file )
120
+ if err != nil {
121
+ return nil , xerrors .Errorf ("unable to parse packageJSON file: %w" , err )
122
+ }
123
+ // packageJson always contain only 1 element
124
+ // cf. https://github.com/aquasecurity/trivy/blob/c3192f061d7e84eaf38df8df7c879dc00b4ca137/pkg/dependency/parser/conda/meta/parse.go#L39-L45
125
+ return packageJson [0 ].Licenses , nil
126
+ }
0 commit comments