Skip to content

Commit

Permalink
fixed reading of public directory for assets install
Browse files Browse the repository at this point in the history
  • Loading branch information
alexander-schranz committed Dec 8, 2018
1 parent 24610dc commit f3effd2
Showing 1 changed file with 26 additions and 1 deletion.
Expand Up @@ -17,6 +17,7 @@
use Symfony\Component\Console\Input\InputOption;
use Symfony\Component\Console\Output\OutputInterface;
use Symfony\Component\Console\Style\SymfonyStyle;
use Symfony\Component\DependencyInjection\ContainerInterface;
use Symfony\Component\Filesystem\Exception\IOException;
use Symfony\Component\Filesystem\Filesystem;
use Symfony\Component\Finder\Finder;
Expand Down Expand Up @@ -65,7 +66,7 @@ protected function configure()
{
$this
->setDefinition(array(
new InputArgument('target', InputArgument::OPTIONAL, 'The target directory', 'public'),
new InputArgument('target', InputArgument::OPTIONAL, 'The target directory', null),
))
->addOption('symlink', null, InputOption::VALUE_NONE, 'Symlinks the assets instead of copying it')
->addOption('relative', null, InputOption::VALUE_NONE, 'Make relative symlinks')
Expand Down Expand Up @@ -107,6 +108,10 @@ protected function execute(InputInterface $input, OutputInterface $output)
$kernel = $this->getApplication()->getKernel();
$targetArg = rtrim($input->getArgument('target'), '/');

if (!$targetArg) {
$targetArg = $this->getPublicDirectory($this->getContainer());
}

if (!is_dir($targetArg)) {
$targetArg = (isset($baseDir) ? $baseDir : $kernel->getContainer()->getParameter('kernel.project_dir')).'/'.$targetArg;

Expand Down Expand Up @@ -288,4 +293,24 @@ private function hardCopy($originDir, $targetDir)

return self::METHOD_COPY;
}

private function getPublicDirectory(ContainerInterface $container)
{
$kernelProjectDir = $container->getParameter('kernel.project_dir');
$composerFilePath = $kernelProjectDir . '/composer.json';

if (file_exists($composerFilePath)) {
$composerConfig = json_decode(file_get_contents($composerFilePath), true);

if (isset($composerConfig['extra'])) {
if (isset($composerConfig['extra']['public-dir'])) {
return $composerConfig['extra']['public-dir'];
} elseif (isset($composerConfig['extra']['symfony-web-dir'])) {
return $composerConfig['extra']['symfony-web-dir'];
}
}
}

return 'public';
}
}

0 comments on commit f3effd2

Please sign in to comment.