Skip to content

Commit 49214d7

Browse files
committed
feat: replace composer.lock parser
1 parent 4f37987 commit 49214d7

File tree

1 file changed

+2
-58
lines changed

1 file changed

+2
-58
lines changed
Lines changed: 2 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,67 +1,11 @@
11
package lockfile
22

33
import (
4-
"encoding/json"
5-
"fmt"
6-
"os"
4+
"github.com/google/osv-scalibr/extractor/filesystem/language/php/composerlock"
75
)
86

9-
type ComposerPackage struct {
10-
Name string `json:"name"`
11-
Version string `json:"version"`
12-
Dist struct {
13-
Reference string `json:"reference"`
14-
} `json:"dist"`
15-
}
16-
17-
type ComposerLock struct {
18-
Packages []ComposerPackage `json:"packages"`
19-
PackagesDev []ComposerPackage `json:"packages-dev"`
20-
}
21-
227
const ComposerEcosystem Ecosystem = "Packagist"
238

249
func ParseComposerLock(pathToLockfile string) ([]PackageDetails, error) {
25-
var parsedLockfile *ComposerLock
26-
27-
lockfileContents, err := os.ReadFile(pathToLockfile)
28-
29-
if err != nil {
30-
return []PackageDetails{}, fmt.Errorf("could not read %s: %w", pathToLockfile, err)
31-
}
32-
33-
err = json.Unmarshal(lockfileContents, &parsedLockfile)
34-
35-
if err != nil {
36-
return []PackageDetails{}, fmt.Errorf("could not parse %s: %w", pathToLockfile, err)
37-
}
38-
39-
packages := make(
40-
[]PackageDetails,
41-
0,
42-
// len cannot return negative numbers, but the types can't reflect that
43-
uint64(len(parsedLockfile.Packages))+uint64(len(parsedLockfile.PackagesDev)),
44-
)
45-
46-
for _, composerPackage := range parsedLockfile.Packages {
47-
packages = append(packages, PackageDetails{
48-
Name: composerPackage.Name,
49-
Version: composerPackage.Version,
50-
Commit: composerPackage.Dist.Reference,
51-
Ecosystem: ComposerEcosystem,
52-
CompareAs: ComposerEcosystem,
53-
})
54-
}
55-
56-
for _, composerPackage := range parsedLockfile.PackagesDev {
57-
packages = append(packages, PackageDetails{
58-
Name: composerPackage.Name,
59-
Version: composerPackage.Version,
60-
Commit: composerPackage.Dist.Reference,
61-
Ecosystem: ComposerEcosystem,
62-
CompareAs: ComposerEcosystem,
63-
})
64-
}
65-
66-
return packages, nil
10+
return extract(pathToLockfile, composerlock.New(), ComposerEcosystem)
6711
}

0 commit comments

Comments
 (0)