From 0ed82a2c6ffd8e981d9dd388306379941ecb5720 Mon Sep 17 00:00:00 2001 From: Fbenas Date: Sun, 20 Aug 2017 04:18:13 +0100 Subject: WIP rejigging stuff --- src/Filesystem/Create.php | 20 ++++++++++ src/Filesystem/CreateDirectory.php | 25 ++++++++++++ src/Filesystem/CreateFile.php | 25 ++++++++++++ src/Script/Command/Site.php | 80 ++++++++++++++++++++++++++++++++++++++ src/Script/Console.php | 16 ++++++++ 5 files changed, 166 insertions(+) create mode 100644 src/Filesystem/Create.php create mode 100644 src/Filesystem/CreateDirectory.php create mode 100644 src/Filesystem/CreateFile.php create mode 100644 src/Script/Command/Site.php create mode 100644 src/Script/Console.php (limited to 'src') diff --git a/src/Filesystem/Create.php b/src/Filesystem/Create.php new file mode 100644 index 0000000..a1891db --- /dev/null +++ b/src/Filesystem/Create.php @@ -0,0 +1,20 @@ +filename = $filename; + + if (!is_writable(dirname($filename))) { + throw new \Exception('Cannot create ' . $this->thing . ' at: ' . $filename); + } + } + + abstract public function excecute(); +} diff --git a/src/Filesystem/CreateDirectory.php b/src/Filesystem/CreateDirectory.php new file mode 100644 index 0000000..0c45c6c --- /dev/null +++ b/src/Filesystem/CreateDirectory.php @@ -0,0 +1,25 @@ +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'); + } +} diff --git a/src/Script/Console.php b/src/Script/Console.php new file mode 100644 index 0000000..926f41f --- /dev/null +++ b/src/Script/Console.php @@ -0,0 +1,16 @@ +add(new Site()); + $application->run(); + } +} -- cgit v1.2.3