예제 #1
0
 /**
  * @see Command
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $finder = new Finder();
     if (iterator_count($finder->in(getcwd()))) {
         throw new \RuntimeException('The current directory is not empty.');
     }
     $parameters = array('class' => $input->getOption('name'), 'application' => strtolower($input->getOption('name')), 'format' => $input->getOption('format'));
     $filesystem = new Filesystem();
     $skeletonDir = __DIR__ . '/../../skeleton';
     $appPath = getcwd() . '/' . $input->getOption('app-path');
     $srcPath = getcwd() . '/' . $input->getOption('src-path');
     $webPath = getcwd() . '/' . $input->getOption('web-path');
     $filesystem->mirror($skeletonDir . '/application/generic', $appPath);
     $filesystem->mirror($skeletonDir . '/application/' . $input->getOption('format'), $appPath);
     $filesystem->mirror($skeletonDir . '/src', $srcPath);
     Mustache::renderDir($appPath, $parameters);
     $filesystem->chmod($appPath . '/console', 0777);
     $filesystem->chmod($appPath . '/logs', 0777);
     $filesystem->chmod($appPath . '/cache', 0777);
     $filesystem->rename($appPath . '/Kernel.php', $appPath . '/' . $input->getOption('name') . 'Kernel.php');
     $filesystem->rename($appPath . '/Cache.php', $appPath . '/' . $input->getOption('name') . 'Cache.php');
     $filesystem->copy($skeletonDir . '/web/front_controller.php', $file = $webPath . '/' . (file_exists($webPath . '/index.php') ? strtolower($input->getOption('name')) : 'index') . '.php');
     Mustache::renderFile($file, $parameters);
     $filesystem->copy($skeletonDir . '/web/front_controller_debug.php', $file = $webPath . '/' . strtolower($input->getOption('name')) . '_dev.php');
     Mustache::renderFile($file, $parameters);
 }
예제 #2
0
 public function setUp()
 {
     $dir = __DIR__ . '/fixtures/';
     $this->dir = sys_get_temp_dir() . '/mustache';
     $filesystem = new Filesystem();
     $filesystem->mirror($dir, $this->dir);
 }
    /**
     * @see Command
     *
     * @throws \InvalidArgumentException When the target directory does not exist
     */
    protected function execute(InputInterface $input, OutputInterface $output)
    {
        if (!is_dir($input->getArgument('target'))) {
            throw new \InvalidArgumentException(sprintf('The target directory "%s" does not exist.', $input->getArgument('target')));
        }

        $filesystem = new Filesystem();

        foreach ($this->container->get('kernel')->getBundles() as $bundle) {
            if (is_dir($originDir = $bundle->getPath().'/Resources/public')) {
                $output->writeln(sprintf('Installing assets for <comment>%s\\%s</comment>', $bundle->getNamespacePrefix(), $bundle->getName()));

                $targetDir = $input->getArgument('target').'/bundles/'.preg_replace('/bundle$/', '', strtolower($bundle->getName()));

                $filesystem->remove($targetDir);

                if ($input->getOption('symlink')) {
                    $filesystem->symlink($originDir, $targetDir);
                } else {
                    mkdir($targetDir, 0777, true);
                    $filesystem->mirror($originDir, $targetDir);
                }
            }
        }
    }
 /**
  * @see Command
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     if (file_exists($targetDir = $input->getArgument('path'))) {
         throw new \RuntimeException(sprintf('The directory "%s" already exists.', $targetDir));
     }
     if (!file_exists($webDir = $input->getArgument('web_path'))) {
         mkdir($webDir, 0777, true);
     }
     $parameters = array('class' => $input->getArgument('name'), 'application' => strtolower($input->getArgument('name')), 'format' => $input->getOption('format'));
     $filesystem = new Filesystem();
     $filesystem->mirror(__DIR__ . '/../Resources/skeleton/application/generic', $targetDir);
     $filesystem->mirror(__DIR__ . '/../Resources/skeleton/application/' . $input->getOption('format'), $targetDir);
     Mustache::renderDir($targetDir, $parameters);
     $filesystem->chmod($targetDir . '/console', 0777);
     $filesystem->chmod($targetDir . '/logs', 0777);
     $filesystem->chmod($targetDir . '/cache', 0777);
     $filesystem->rename($targetDir . '/Kernel.php', $targetDir . '/' . $input->getArgument('name') . 'Kernel.php');
     $filesystem->rename($targetDir . '/Cache.php', $targetDir . '/' . $input->getArgument('name') . 'Cache.php');
     $filesystem->copy(__DIR__ . '/../Resources/skeleton/web/front_controller.php', $file = $webDir . '/' . (file_exists($webDir . '/index.php') ? strtolower($input->getArgument('name')) : 'index') . '.php');
     Mustache::renderFile($file, $parameters);
     $filesystem->copy(__DIR__ . '/../Resources/skeleton/web/front_controller_debug.php', $file = $webDir . '/' . strtolower($input->getArgument('name')) . '_dev.php');
     Mustache::renderFile($file, $parameters);
 }
예제 #5
0
 /**
  * @see Command
  *
  * @throws \InvalidArgumentException When namespace doesn't end with Bundle
  * @throws \RuntimeException         When bundle can't be executed
  */
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     if (!preg_match('/Bundle$/', $namespace = $input->getArgument('namespace'))) {
         throw new \InvalidArgumentException('The namespace must end with Bundle.');
     }
     $dirs = $this->container->get('kernel')->getBundleDirs();
     $tmp = str_replace('\\', '/', $namespace);
     $namespace = str_replace('/', '\\', dirname($tmp));
     $bundle = basename($tmp);
     if (!isset($dirs[$namespace])) {
         throw new \InvalidArgumentException(sprintf("Unable to initialize the bundle (%s is not a defined namespace).\n" . "Defined namespaces are: %s", $namespace, implode(', ', array_keys($dirs))));
     }
     $dir = $dirs[$namespace];
     $output->writeln(sprintf('Initializing bundle "<info>%s</info>" in "<info>%s</info>"', $bundle, realpath($dir)));
     if (file_exists($targetDir = $dir . '/' . $bundle)) {
         throw new \RuntimeException(sprintf('Bundle "%s" already exists.', $bundle));
     }
     $filesystem = new Filesystem();
     $filesystem->mirror(__DIR__ . '/../Resources/skeleton/bundle', $targetDir);
     Mustache::renderDir($targetDir, array('namespace' => $namespace, 'bundle' => $bundle));
     rename($targetDir . '/Bundle.php', $targetDir . '/' . $bundle . '.php');
 }