protected function execute(InputInterface $input, OutputInterface $output)
 {
     $configHelper = $this->getHelper('configuration');
     /* @var $configHelper GlobalConfigurationHelper */
     $vhostConfigs = $input->getArgument('vhosts');
     if (!$input->getOption('force')) {
         $vhostConfigs = array_filter($vhostConfigs, function (VhostConfiguration $vhostConfiguration) {
             return $vhostConfiguration->isDisabled();
         });
     }
     foreach ($vhostConfigs as $vhostConfig) {
         /* @var $vhostConfig VhostConfiguration */
         if ($input->getOption('force') || $vhostConfig->getLink()->isLink() && $vhostConfig->getLink()->getLinkTarget() === $vhostConfig->getTarget()->getPathname()) {
             FsUtil::unlink($vhostConfig->getLink());
             $output->writeln(sprintf('Removed <info>%s</info>', $vhostConfig->getLink()), OutputInterface::VERBOSITY_VERBOSE);
         } else {
             throw new InvalidLinkTargetException($vhostConfig->getLink(), $vhostConfig->getTarget());
         }
         $vhostConfig->setDisabled(false);
         FsUtil::symlink($vhostConfig->getTarget(), $vhostConfig->getLink());
         $output->writeln(sprintf('Linked <info>%s</info> to <info>%s</info>', $vhostConfig->getLink(), $vhostConfig->getTarget()), OutputInterface::VERBOSITY_VERBOSE);
         $output->writeln(sprintf('Enabled vhost <info>%s</info>', $vhostConfig->getName()));
     }
     $configHelper->getConfiguration()->write();
 }
Exemple #2
0
 protected function execute(InputInterface $input, OutputInterface $output)
 {
     $configHelper = $this->getHelper('configuration');
     /* @var $configHelper GlobalConfigurationHelper */
     try {
         $configHelper->getConfiguration()->getVhostConfiguration($input->getArgument('vhost'));
         throw new VhostExistsException($input->getArgument('vhost'));
     } catch (NoSuchVhostException $ex) {
         // noop
     }
     $application = $configHelper->getConfiguration()->getApplication($input->getArgument('application'));
     $vhostConfig = VhostConfiguration::create($configHelper->getConfiguration(), $input->getArgument('vhost'), $application);
     if (!is_dir($vhostConfig->getLink()->getPath())) {
         FsUtil::mkdir($vhostConfig->getLink()->getPath(), true);
         $output->writeln(sprintf('Created directory <info>%s</info>', $vhostConfig->getLink()->getPath()), OutputInterface::VERBOSITY_VERY_VERBOSE);
     }
     FsUtil::symlink($vhostConfig->getTarget(), $vhostConfig->getLink());
     $output->writeln(sprintf('Created vhost <info>%s</info> for <info>%s</info> (<comment>%s</comment>)', $input->getArgument('vhost'), $vhostConfig->getApplication(), $vhostConfig->getTarget()));
     $configHelper->getConfiguration()->write();
 }
 public function write()
 {
     if (file_exists($this->getConfigFile()->getPathname())) {
         $backupDir = $this->getClicDirectory() . '/settings-backup/' . sha1($this->getConfigFile()->getPathname());
         if (!is_dir($backupDir)) {
             FsUtil::mkdir($backupDir, true);
         }
         $backupFile = $backupDir . '/' . time();
         FsUtil::rename($this->getConfigFile()->getPathname(), $backupFile);
         if (file_exists($backupDir . '/prev')) {
             FsUtil::unlink($backupDir . '/prev');
         }
         FsUtil::symlink($backupFile, $backupDir . '/prev');
     }
     parent::write();
 }