confirmToProceed()) { $this->documentation(); } } /** * Regenerate api documentation. */ protected function documentation(): void { putenv('DB_CONNECTION=docs'); putenv('APP_ENV=testing'); putenv('CACHE_DRIVER=array'); putenv('QUEUE_CONNECTION=sync'); putenv('SESSION_DRIVER=array'); putenv('MAIL_MAILER=log'); putenv('SCOUT_DRIVER=null'); if (! File::exists($database = config('database.connections.docs.database'))) { File::put($database, ''); } $v = $this->getVerbosity(); $artisan = base_path('artisan'); passthru(PHP_BINARY." $artisan migrate:fresh --force -q"); passthru(PHP_BINARY." $artisan scribe:generate --force$v"); if ($this->option('clean') && File::exists($database)) { File::delete($database); } } private function getVerbosity(): string { $verbosity = $this->getOutput()->getOutput()->getVerbosity(); if ($verbosity >= OutputInterface::VERBOSITY_DEBUG) { return ' -vvv'; } if ($verbosity >= OutputInterface::VERBOSITY_VERY_VERBOSE) { return ' -vv'; } if ($verbosity >= OutputInterface::VERBOSITY_VERBOSE) { return ' -v'; } if ($verbosity <= OutputInterface::VERBOSITY_QUIET) { return ' -q'; } return ''; } }