|
4 | 4 |
|
5 | 5 | namespace CodedMonkey\Dirigent\DependencyInjection; |
6 | 6 |
|
| 7 | +use CodedMonkey\Dirigent\Entity\PackageFetchStrategy; |
7 | 8 | use Symfony\Component\Config\Definition\ConfigurationInterface; |
8 | 9 | use Symfony\Component\DependencyInjection\ContainerBuilder; |
9 | 10 | use Symfony\Component\HttpKernel\DependencyInjection\ConfigurableExtension; |
@@ -58,11 +59,25 @@ private function registerEncryptionConfiguration(array $config, ContainerBuilder |
58 | 59 | } |
59 | 60 |
|
60 | 61 | /** |
61 | | - * @param array{mirror_vcs_repositories: bool, retain_stale_revisions: array{enabled: bool, tagged_versions: bool, dev_versions: bool}, retain_pruned_versions: array{enabled: bool, tagged_versions: bool, dev_versions: bool}} $config |
| 62 | + * @param array{default_fetch_strategy: PackageFetchStrategy, mirror_vcs_repositories: bool, retain_stale_revisions: array{enabled: bool, tagged_versions: bool, dev_versions: bool}, retain_pruned_versions: array{enabled: bool, tagged_versions: bool, dev_versions: bool}} $config |
62 | 63 | */ |
63 | 64 | private function registerMetadataConfiguration(array $config, ContainerBuilder $container): void |
64 | 65 | { |
65 | | - $container->setParameter('dirigent.metadata.mirror_vcs_repositories', $config['mirror_vcs_repositories']); |
| 66 | + $defaultFetchStrategy = $config['default_fetch_strategy']; |
| 67 | + $mirrorVcsRepositories = $config['mirror_vcs_repositories']; |
| 68 | + |
| 69 | + if ($mirrorVcsRepositories && $defaultFetchStrategy->isMirror()) { |
| 70 | + $defaultFetchStrategy = PackageFetchStrategy::Source; |
| 71 | + } |
| 72 | + |
| 73 | + $container->setParameter( |
| 74 | + name: 'dirigent.metadata.default_mirror_fetch_strategy', |
| 75 | + value: $defaultFetchStrategy, |
| 76 | + ); |
| 77 | + $container->setParameter( |
| 78 | + name: 'dirigent.metadata.default_vcs_fetch_strategy', |
| 79 | + value: false === $defaultFetchStrategy->isMirror() ? $defaultFetchStrategy : PackageFetchStrategy::Source, |
| 80 | + ); |
66 | 81 |
|
67 | 82 | $retainPrunedVersions = $config['retain_pruned_versions']['enabled']; |
68 | 83 | $container->setParameter( |
|
0 commit comments