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(); }
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(); }