]> BookStack Code Mirror - bookstack/blobdiff - dev/licensing/gen-js-licenses
Customization: Added parent tag classes
[bookstack] / dev / licensing / gen-js-licenses
index 6c44791aa27d430ff42402162d06f7c3fe1411dc..191a16f302fa12e39e815108c606173378ea1876 100644 (file)
@@ -4,10 +4,12 @@
 // This script reads the project composer.lock file to generate
 // clear license details for our PHP dependencies.
 
+declare(strict_types=1);
+require "gen-licenses-shared.php";
+
 $rootPath = dirname(__DIR__, 2);
 $outputPath = "{$rootPath}/dev/licensing/js-library-licenses.txt";
 $outputSeparator = "\n-----------\n";
-$warnings = [];
 
 $packages = [
     ...glob("{$rootPath}/node_modules/*/package.json"),
@@ -20,12 +22,7 @@ $licenseInfo = implode($outputSeparator, $packageOutput) . "\n";
 file_put_contents($outputPath, $licenseInfo);
 
 echo "License information written to {$outputPath}\n";
-echo implode("\n", $warnings);
-
-function dd(mixed $data): never {
-    print_r($data);
-    exit(0);
-}
+echo implode("\n", getWarnings()) . "\n";
 
 function packageToOutput(string $packagePath): string
 {
@@ -64,58 +61,3 @@ function packageToOutput(string $packagePath): string
 
     return implode("\n", $output);
 }
-
-function findLicenseFile(string $packageName, string $packagePath): string
-{
-    $licenseNameOptions = [
-        'license', 'LICENSE', 'License',
-        'license.*', 'LICENSE.*', 'License.*',
-        'license-*.*', 'LICENSE-*.*', 'License-*.*',
-    ];
-    $packageDir = dirname($packagePath);
-
-    $foundLicenses = [];
-    foreach ($licenseNameOptions as $option) {
-        $search = glob("{$packageDir}/$option");
-        array_push($foundLicenses, ...$search);
-    }
-
-    if (count($foundLicenses) > 1) {
-        warn("Package {$packageName}: more than one license file found");
-    }
-
-    if (count($foundLicenses) > 0) {
-        $fileName = basename($foundLicenses[0]);
-        return "{$packageDir}/{$fileName}";
-    }
-
-    warn("Package {$packageName}: no license files found");
-    return '';
-}
-
-function findCopyright(string $licenseFile): string
-{
-    $fileContents = file_get_contents($licenseFile);
-    $pattern = '/^.*?copyright (\(c\)|\d{4})[\s\S]*?(\n\n|\.\n)/mi';
-    $matches = [];
-    preg_match($pattern, $fileContents, $matches);
-    $copyright = trim($matches[0] ?? '');
-
-    if (str_contains($copyright, 'i.e.')) {
-        return '';
-    }
-
-    $emailPattern = '/([a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,})/i';
-    return preg_replace_callback($emailPattern, obfuscateEmail(...), $copyright);
-}
-
-function obfuscateEmail(array $matches): string
-{
-    return preg_replace('/[^@.]/', '*', $matches[1]);
-}
-
-function warn(string $text): void
-{
-    global $warnings;
-    $warnings[] = "WARN:" . $text;
-}
\ No newline at end of file