addArgument('name', InputArgument::REQUIRED, 'The name of the new site.'); $this ->addArgument('domain', InputArgument::REQUIRED, 'The domain name of the new site.'); $this ->setName('site:create') ->setDescription('Create a new site.') ->setHelp('This command allows you to create a new site.') ; } protected function execute(InputInterface $input, OutputInterface $output) { $taskCount = 6; $output->writeln( 'Creating new site with domain: ' . $input->getArgument('domain') . ' and name: ' . $input->getArgument('name') ); $progressBar = new ProgressBar($output, $taskCount); $progressBar->setFormatDefinition('custom', ' %current%/%max% -- %message%'); $progressBar->setFormat('custom'); $progressBar->setMessage('Starting...'); $progressBar->start(); $progressBar->setMessage('Running pre-flight checks'); $progressBar->advance(); try { $create = new \App\Filesystem\CreateFile(DIPPER_ROOT . '/foo.test'); $create = new \App\Filesystem\CreateDirectory(DIPPER_ROOT); sleep(1); } catch (\Exception $e) { $output->writeln('Error with pre-flight checks'); $output->writeln($e->getMessage()); exit; } $progressBar->advance(); $progressBar->setMessage('Creating directory structure'); sleep(1); $progressBar->advance(); $progressBar->setMessage('Creating nginx config'); sleep(1); $progressBar->advance(); $progressBar->setMessage('Creating default index.php'); sleep(1); $progressBar->advance(); $progressBar->setMessage('Creating nginx config'); sleep(1); $progressBar->advance(); $progressBar->finish(); $output->writeln(''); $output->writeln('Complete'); } }