public function testProjectName() { $this->assertEquals('phpunit', Platform::projectName()); // Change values file_put_contents(Platform::rootDir() . '/' . Config::PLATFORM_CONFIG, ''); Config::reset(); $this->assertNull(Platform::projectName()); }
/** * @inheritdoc */ protected function initialize(InputInterface $input, OutputInterface $output) { $this->stdOut = $output; $this->stdErr = $output instanceof ConsoleOutputInterface ? $output->getErrorOutput() : $output; $this->stdIn = $input; self::$interactive = $input->isInteractive(); if (empty(Config::get())) { $this->getApplication()->find('init')->run($input, $output); exit(1); } }
/** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $composeConfig = new ComposeConfig(); // Create docker folder in project. try { $composeConfig->ensureDirectories(); } catch (IOException $e) { $this->stdOut->writeln("<error>Error while trying to create docker-compose directories.</error>"); exit(1); } $composeConfig->copyImages(); $composeConfig->copyConfigs(); $composeContainers = new ComposeContainers(Platform::rootDir(), Config::get('name')); // @todo: With #20 and making tool provider aware, read those configs. Or push those configs to main. if (isset(Config::get()['services'])) { foreach (Config::get('services') as $service) { switch ($service) { case 'redis': $composeContainers->addRedis(); break; case 'solr': $composeContainers->addSolr(); break; case 'memcached': $composeContainers->addMemcached(); break; } } } $composeConfig->writeDockerCompose($composeContainers); // @todo move this into a static class to run configure based on type. $stack = Toolstack::inspect(Platform::webDir()); if ($stack) { $this->stdOut->writeln("<comment>Configuring stack:</comment> " . $stack->type()); switch ($stack->type()) { case Stacks\Drupal::TYPE: $drupal = new Drupal(); $drupal->configure(); break; case Stacks\WordPress::TYPE: $wordpress = new WordPress(); $wordpress->configure(); break; } } $this->stdOut->writeln('<info>Building the containers</info>'); Compose::build(); $this->stdOut->writeln('<info>Bringing up the containers</info>'); Compose::up(['-d']); }
/** * {@inheritdoc} * * @see PlatformCommand::getCurrentEnvironment() */ protected function execute(InputInterface $input, OutputInterface $output) { $this->stdOut->writeln("<info>Syncing Platform.sh environment database to local</info>"); /** @var \Symfony\Component\Console\Helper\ProcessHelper $process */ $process = $this->getHelper('process'); // If this is a Platform.sh project, get latest dump. // @todo: add proper provider integration if (Config::get('id')) { $process->mustRun($this->stdOut, ['platform', 'sql-dump']); } $cd = getcwd(); chdir(Platform::webDir()); $process->run($this->stdOut, 'drush sqlc < ' . $input->getArgument('file')); chdir($cd); }
/** * @inheritdoc */ protected function initialize(InputInterface $input, OutputInterface $output) { if (empty(Config::get())) { $this->cwd = getcwd(); /** @var QuestionHelper $helper */ $helper = $this->getHelper('question'); $output->writeln("<comment>Current directory: {$this->cwd}"); $question = new ConfirmationQuestion("<info>There isn't a project here, create one? [Y,n] </info>"); if ($helper->ask($input, $output, $question)) { Config::set('alias-group', basename($this->cwd)); Config::set('name', basename($this->cwd)); Config::set('path', $this->cwd); if (!Config::write($this->cwd)) { throw new \Exception('There was an error writing the platform configuration.'); } } else { exit(1); } } parent::initialize($input, $output); }
/** * {@inheritdoc} */ protected function execute(InputInterface $input, OutputInterface $output) { $composeConfig = new ComposeConfig(); // Create docker folder in project. try { $composeConfig->ensureDirectories(); } catch (IOException $e) { $this->stdOut->writeln("<error>Error while trying to create docker-compose directories.</error>"); exit(1); } $composeConfig->copyImages(); $composeConfig->copyConfigs(); $composeContainers = new ComposeContainers(Platform::rootDir(), Config::get('name')); // @todo check if services.yml has redis $composeContainers->addRedis(); // @todo check to make this optional $composeContainers->addSolr(); $composeConfig->writeDockerCompose($composeContainers); // @todo move this into a static class to run configure based on type. $stack = Toolstack::getStackByDir(Platform::webDir()); if ($stack) { $this->stdOut->writeln("<comment>Configuring stack:</comment> " . $stack->type()); switch ($stack->type()) { case Stacks\Drupal::TYPE: $drupal = new Drupal(); $drupal->configure(); break; case Stacks\WordPress::TYPE: $wordpress = new WordPress(); $wordpress->configure(); break; } } $this->stdOut->writeln('<info>Building the containers</info>'); Compose::build(); $this->stdOut->writeln('<info>Bringing up the containers</info>'); Compose::up(['-d']); }