From f642c740551573cf007dd620f2fa7dc4251fe487 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Steffen=20M=C3=A4chtel?= Date: Thu, 27 Apr 2023 14:06:03 +0200 Subject: [PATCH] hotfix windows symlink support https://forge.typo3.org/issues/100282 --- .../Classes/Composer/PackageArtifactBuilder.php | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/vendor/typo3/cms-core/Classes/Composer/PackageArtifactBuilder.php b/vendor/typo3/cms-core/Classes/Composer/PackageArtifactBuilder.php index 00f8e18..d9e005f 100644 --- a/vendor/typo3/cms-core/Classes/Composer/PackageArtifactBuilder.php +++ b/vendor/typo3/cms-core/Classes/Composer/PackageArtifactBuilder.php @@ -21,6 +21,7 @@ use Composer\Package\PackageInterface; use Composer\Repository\PlatformRepository; use Composer\Script\Event; use Composer\Util\Filesystem; +use Composer\Util\Platform; use TYPO3\CMS\Composer\Plugin\Config; use TYPO3\CMS\Composer\Plugin\Core\InstallerScript; use TYPO3\CMS\Composer\Plugin\Util\ExtensionKeyResolver; @@ -266,10 +267,19 @@ class PackageArtifactBuilder extends PackageManager implements InstallerScript } $relativePath = substr($fileSystemResourcesPath, strlen($baseDir)); [$relativePrefix] = explode('Resources/Public', $relativePath); + if (Platform::isWindows()) { + $relativePrefix = str_replace('\\', '/', $relativePrefix); + } $publicResourcesPath = $fileSystem->normalizePath($this->config->get('web-dir') . '/_assets/' . md5($relativePrefix)); $fileSystem->ensureDirectoryExists(dirname($publicResourcesPath)); - if (!$fileSystem->isSymlinkedDirectory($publicResourcesPath)) { - $fileSystem->relativeSymlink($fileSystemResourcesPath, $publicResourcesPath); + if (Platform::isWindows()) { + if (!$fileSystem->isJunction($publicResourcesPath)) { + $fileSystem->junction($fileSystemResourcesPath, $publicResourcesPath); + } + } else { + if (!$fileSystem->isSymlinkedDirectory($publicResourcesPath)) { + $fileSystem->relativeSymlink($fileSystemResourcesPath, $publicResourcesPath); + } } } } -- 2.19.1.windows.1