Navigation Menu

Skip to content

Commit

Permalink
Eliminate code duplication
Browse files Browse the repository at this point in the history
  • Loading branch information
sebastianbergmann committed Jun 19, 2022
1 parent b126330 commit 6eb8577
Showing 1 changed file with 32 additions and 24 deletions.
56 changes: 32 additions & 24 deletions build/scripts/phar-manifest.php
Expand Up @@ -29,13 +29,14 @@ function manifest(string $outputFilename, array $package, string $version, array
);

foreach ($dependencies as $dependency) {
$buffer .= $dependency['name'] . ': ' . $dependency['version'];

if (!preg_match('/^[v= ]*(([0-9]+)(\\.([0-9]+)(\\.([0-9]+)(-([0-9]+))?(-?([a-zA-Z-+][a-zA-Z0-9.\\-:]*)?)?)?)?)$/', $dependency['version'])) {
$buffer .= '@' . $dependency['source']['reference'];
}

$buffer .= "\n";
$buffer .= sprintf(
'%s: %s' . "\n",
$dependency['name'],
versionWithReference(
$dependency['version'],
$dependency['source']['reference']
)
);
}

file_put_contents($outputFilename, $buffer);
Expand Down Expand Up @@ -64,18 +65,16 @@ function sbom(string $outputFilename, array $package, string $version, array $de
);

foreach ($dependencies as $dependency) {
[$group, $name] = explode('/', $dependency['name']);
$dependencyVersion = $dependency['version'];

if (!preg_match('/^[v= ]*(([0-9]+)(\\.([0-9]+)(\\.([0-9]+)(-([0-9]+))?(-?([a-zA-Z-+][a-zA-Z0-9.\\-:]*)?)?)?)?)$/', $dependencyVersion)) {
$dependencyVersion .= '@' . $dependency['source']['reference'];
}
[$group, $name] = explode('/', $dependency['name']);

writeComponent(
$writer,
$group,
$name,
$dependencyVersion,
versionWithReference(
$dependency['version'],
$dependency['source']['reference']
),
$dependency['description'],
$dependency['license']
);
Expand All @@ -88,16 +87,6 @@ function sbom(string $outputFilename, array $package, string $version, array $de
file_put_contents($outputFilename, $writer->outputMemory());
}

function dependencies(): array
{
return json_decode(
file_get_contents(
__DIR__ . '/../../composer.lock'
),
true
)['packages'];
}

function package(): array
{
$data = json_decode(
Expand Down Expand Up @@ -131,6 +120,25 @@ function version(): string
return $branch . '@' . $hash;
}

function dependencies(): array
{
return json_decode(
file_get_contents(
__DIR__ . '/../../composer.lock'
),
true
)['packages'];
}

function versionWithReference(string $version, string $reference): string
{
if (!preg_match('/^[v= ]*(([0-9]+)(\\.([0-9]+)(\\.([0-9]+)(-([0-9]+))?(-?([a-zA-Z-+][a-zA-Z0-9.\\-:]*)?)?)?)?)$/', $version)) {
$version .= '@' . $reference;
}

return $version;
}

function writeComponent(XMLWriter $writer, string $group, string $name, string $version, string $description, array $licenses): void
{
$writer->startElement('component');
Expand Down

0 comments on commit 6eb8577

Please sign in to comment.