@@ -29,13 +29,14 @@ function manifest(string $outputFilename, array $package, string $version, array
29
29
);
30
30
31
31
foreach ($ dependencies as $ dependency ) {
32
- $ buffer .= $ dependency ['name ' ] . ': ' . $ dependency ['version ' ];
33
-
34
- if (!preg_match ('/^[v= ]*(([0-9]+)( \\.([0-9]+)( \\.([0-9]+)(-([0-9]+))?(-?([a-zA-Z-+][a-zA-Z0-9. \\-:]*)?)?)?)?)$/ ' , $ dependency ['version ' ])) {
35
- $ buffer .= '@ ' . $ dependency ['source ' ]['reference ' ];
36
- }
37
-
38
- $ buffer .= "\n" ;
32
+ $ buffer .= sprintf (
33
+ '%s: %s ' . "\n" ,
34
+ $ dependency ['name ' ],
35
+ versionWithReference (
36
+ $ dependency ['version ' ],
37
+ $ dependency ['source ' ]['reference ' ]
38
+ )
39
+ );
39
40
}
40
41
41
42
file_put_contents ($ outputFilename , $ buffer );
@@ -64,18 +65,16 @@ function sbom(string $outputFilename, array $package, string $version, array $de
64
65
);
65
66
66
67
foreach ($ dependencies as $ dependency ) {
67
- [$ group , $ name ] = explode ('/ ' , $ dependency ['name ' ]);
68
- $ dependencyVersion = $ dependency ['version ' ];
69
-
70
- if (!preg_match ('/^[v= ]*(([0-9]+)( \\.([0-9]+)( \\.([0-9]+)(-([0-9]+))?(-?([a-zA-Z-+][a-zA-Z0-9. \\-:]*)?)?)?)?)$/ ' , $ dependencyVersion )) {
71
- $ dependencyVersion .= '@ ' . $ dependency ['source ' ]['reference ' ];
72
- }
68
+ [$ group , $ name ] = explode ('/ ' , $ dependency ['name ' ]);
73
69
74
70
writeComponent (
75
71
$ writer ,
76
72
$ group ,
77
73
$ name ,
78
- $ dependencyVersion ,
74
+ versionWithReference (
75
+ $ dependency ['version ' ],
76
+ $ dependency ['source ' ]['reference ' ]
77
+ ),
79
78
$ dependency ['description ' ],
80
79
$ dependency ['license ' ]
81
80
);
@@ -88,16 +87,6 @@ function sbom(string $outputFilename, array $package, string $version, array $de
88
87
file_put_contents ($ outputFilename , $ writer ->outputMemory ());
89
88
}
90
89
91
- function dependencies (): array
92
- {
93
- return json_decode (
94
- file_get_contents (
95
- __DIR__ . '/../../composer.lock '
96
- ),
97
- true
98
- )['packages ' ];
99
- }
100
-
101
90
function package (): array
102
91
{
103
92
$ data = json_decode (
@@ -131,6 +120,25 @@ function version(): string
131
120
return $ branch . '@ ' . $ hash ;
132
121
}
133
122
123
+ function dependencies (): array
124
+ {
125
+ return json_decode (
126
+ file_get_contents (
127
+ __DIR__ . '/../../composer.lock '
128
+ ),
129
+ true
130
+ )['packages ' ];
131
+ }
132
+
133
+ function versionWithReference (string $ version , string $ reference ): string
134
+ {
135
+ if (!preg_match ('/^[v= ]*(([0-9]+)( \\.([0-9]+)( \\.([0-9]+)(-([0-9]+))?(-?([a-zA-Z-+][a-zA-Z0-9. \\-:]*)?)?)?)?)$/ ' , $ version )) {
136
+ $ version .= '@ ' . $ reference ;
137
+ }
138
+
139
+ return $ version ;
140
+ }
141
+
134
142
function writeComponent (XMLWriter $ writer , string $ group , string $ name , string $ version , string $ description , array $ licenses ): void
135
143
{
136
144
$ writer ->startElement ('component ' );
0 commit comments