private function generateProjectFolder($input, $filesystem)
{
$path = $input->getArgument('path');
$app = $input->getArgument('app');
$vendor = $input->getArgument('vendor');
$filesystem->mirror(__DIR__ . '/../Resources/skeleton/project', $path);
$targetBundleDir = sprintf('%s/src/%s/%sBundle', $path, $vendor, $app);
$filesystem->mkdirs($targetBundleDir);
$filesystem->mirror(__DIR__ . '/../Resources/skeleton/bundle', $targetBundleDir);
$filesystem->rename($targetBundleDir . '/AppBundle.php', $targetBundleDir . '/' . sprintf('%sBundle.php', $vendor . $app));
if ($controller = $input->getOption('controller')) {
$filesystem->rename($targetBundleDir . '/Controller/BundleController.php', $targetBundleDir . '/Controller/' . $controller . 'Controller.php');
$filesystem->rename($targetBundleDir . '/Resources/views/Bundle', $targetBundleDir . '/Resources/views/' . $controller);
} else {
$filesystem->remove($targetBundleDir . '/Controller/BundleController.php');
$filesystem->remove($targetBundleDir . '/Resources/Views/Bundle');
$filesystem->remove($targetBundleDir . '/Resources/config/routing.yml');
}
$extension = 'twig' === $input->getOption('template-engine') ? 'php' : 'twig';
$filesystem->remove($targetBundleDir . '/Resources/Views/layout.html.' . $extension);
$filesystem->remove($targetBundleDir . '/Resources/Views/' . $controller . '/index.html.' . $extension);
$filesystem->remove($targetBundleDir . '/Resources/Views/' . $controller . '/welcome.html.' . $extension);
$filesystem->remove($path . '/app/Resources/views/base.html.' . $extension);
/* create empty folder */
$filesystem->mkdirs($path . '/app/cache', 0777);
$filesystem->mkdirs($path . '/app/logs', 0777);
$filesystem->mkdirs($path . '/src', 0755);
$filesystem->mkdirs($path . '/vendor', 0755);
$filesystem->mkdirs($targetBundleDir . '/Resources/public');
$filesystem->mkdirs($targetBundleDir . '/Tests');
$filesystem->chmod($path . '/app/console', 0755);
}