generate-installed-sixshop.php 1.0 KB

12345678910111213141516171819202122232425262728293031323334
  1. <?php
  2. declare(strict_types=1);
  3. const EXTENSION_TYPE = 'sixshop-extension';
  4. $dir = __DIR__;
  5. while (!is_file($dir . '/vendor/composer/installed.php')) {
  6. $parent = dirname($dir);
  7. if ($parent === $dir) {
  8. fwrite(STDERR, "Unable to locate vendor/composer/installed.php\n");
  9. exit(1);
  10. }
  11. $dir = $parent;
  12. }
  13. $vendorDir = $dir . '/vendor';
  14. $installed = require $vendorDir . '/composer/installed.php';
  15. $installedSixShopExtensions = [
  16. 'root' => [],
  17. 'versions' => [],
  18. ];
  19. $referenceMap = [];
  20. foreach ($installed['versions'] as $name => $package) {
  21. if (isset($package['type']) && $package['type'] === EXTENSION_TYPE) {
  22. $installedSixShopExtensions['versions'][$name] = $package;
  23. $referenceMap[$name] = $package['reference'];
  24. }
  25. }
  26. $installedSixShopExtensions['root']['reference'] = hash('md5', json_encode($referenceMap));
  27. $filePath = $vendorDir . '/composer/installedSixShop.php';
  28. file_put_contents($filePath, '<?php return ' . var_export($installedSixShopExtensions, true) . ';');