Exemplo n.º 1
0
 /**
  * @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->getKernelService()->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);
             mkdir($targetDir, 0755, true);
             $filesystem->mirror($originDir, $targetDir);
         }
     }
 }
Exemplo n.º 2
0
 /**
  * @see Command
  */
 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();
     $dirs = $this->container->getKernelService()->getBundleDirs();
     foreach ($this->container->getKernelService()->getBundles() as $bundle) {
         $tmp = dirname(str_replace('\\', '/', get_class($bundle)));
         $namespace = dirname($tmp);
         $class = basename($tmp);
         if (isset($dirs[$namespace]) && is_dir($originDir = $dirs[$namespace] . '/' . $class . '/Resources/public')) {
             $output->writeln(sprintf('Installing assets for <comment>%s\\%s</comment>', $namespace, $class));
             $targetDir = $input->getArgument('target') . '/bundles/' . preg_replace('/bundle$/', '', strtolower($class));
             $filesystem->remove($targetDir);
             mkdir($targetDir, 0755, true);
             $filesystem->mirror($originDir, $targetDir);
         }
     }
 }
Exemplo n.º 3
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->getKernelService()->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 not defined).', $namespace));
     }
     $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));
 }
 /**
  * @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('yaml') ? 'yaml' : 'xml';
     $filesystem = new Filesystem();
     $filesystem->mirror(__DIR__ . '/../Resources/skeleton/application/' . $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->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);
 }
Exemplo n.º 5
0
 protected function callPhing($taskName, $properties = array())
 {
     $kernel = $this->application->getKernel();
     $tmpDir = sys_get_temp_dir() . '/propel-gen';
     $filesystem = new Filesystem();
     $filesystem->remove($tmpDir);
     $filesystem->mkdirs($tmpDir);
     foreach ($kernel->getBundles() as $bundle) {
         if (is_dir($dir = $bundle->getPath() . '/Resources/config')) {
             $finder = new Finder();
             $schemas = $finder->files()->name('*schema.xml')->followLinks()->in($dir);
             $parts = explode(DIRECTORY_SEPARATOR, realpath($bundle->getPath()));
             $prefix = implode('.', array_slice($parts, 1, -2));
             foreach ($schemas as $schema) {
                 $filesystem->copy((string) $schema, $file = $tmpDir . DIRECTORY_SEPARATOR . md5($schema) . '_' . $schema->getBaseName());
                 $content = file_get_contents($file);
                 $content = preg_replace_callback('/package\\s*=\\s*"(.*?)"/', function ($matches) use($prefix) {
                     return sprintf('package="%s"', $prefix . '.' . $matches[1]);
                 }, $content);
                 file_put_contents($file, $content);
             }
         }
     }
     $filesystem->touch($tmpDir . '/build.properties');
     $args = array();
     //        $bufferPhingOutput = !$this->commandApplication->withTrace();
     $properties = array_merge(array('propel.database' => 'mysql', 'project.dir' => $tmpDir, 'propel.output.dir' => $kernel->getRootDir() . '/propel', 'propel.php.dir' => '/'), $properties);
     foreach ($properties as $key => $value) {
         $args[] = "-D{$key}={$value}";
     }
     // Build file
     $args[] = '-f';
     $args[] = realpath($kernel->getContainer()->getParameter('propel.path') . '/generator/build.xml');
     /*
             // Logger
             if (DIRECTORY_SEPARATOR != '\\' && (function_exists('posix_isatty') && @posix_isatty(STDOUT))) {
                 $args[] = '-logger';
                 $args[] = 'phing.listener.AnsiColorLogger';
             }
     
             // Add our listener to detect errors
             $args[] = '-listener';
             $args[] = 'sfPhingListener';
     */
     // Add any arbitrary arguments last
     foreach ($this->additionalPhingArgs as $arg) {
         if (in_array($arg, array('verbose', 'debug'))) {
             $bufferPhingOutput = false;
         }
         $args[] = '-' . $arg;
     }
     $args[] = $taskName;
     // enable output buffering
     Phing::setOutputStream(new \OutputStream(fopen('php://output', 'w')));
     Phing::startup();
     Phing::setProperty('phing.home', getenv('PHING_HOME'));
     //      $this->logSection('propel', 'Running "'.$taskName.'" phing task');
     $bufferPhingOutput = false;
     if ($bufferPhingOutput) {
         ob_start();
     }
     $m = new Phing();
     $m->execute($args);
     $m->runBuild();
     if ($bufferPhingOutput) {
         ob_end_clean();
     }
     print $bufferPhingOutput;
     chdir($kernel->getRootDir());
     /*
             // any errors?
             $ret = true;
             if (sfPhingListener::hasErrors())
             {
                 $messages = array('Some problems occurred when executing the task:');
     
                 foreach (sfPhingListener::getExceptions() as $exception)
                 {
                   $messages[] = '';
                   $messages[] = preg_replace('/^.*build\-propel\.xml/', 'build-propel.xml', $exception->getMessage());
                   $messages[] = '';
                 }
     
                 if (count(sfPhingListener::getErrors()))
                 {
                   $messages[] = 'If the exception message is not clear enough, read the output of the task for';
                   $messages[] = 'more information';
                 }
     
                 $this->logBlock($messages, 'ERROR_LARGE');
     
                 $ret = false;
             }
     */
     $ret = true;
     return $ret;
 }
Exemplo n.º 6
0
 public function tearDown()
 {
     $filesystem = new Filesystem();
     $filesystem->remove($this->dir);
 }