diff --git a/app/Console/Commands/UpgradeCommand.php b/app/Console/Commands/UpgradeCommand.php deleted file mode 100644 index 83627ea58..000000000 --- a/app/Console/Commands/UpgradeCommand.php +++ /dev/null @@ -1,196 +0,0 @@ -option('skip-download'); - if (!$skipDownload) { - $this->output->warning(trans('commands.upgrade.integrity')); - $this->output->comment(trans('commands.upgrade.source_url')); - $this->line($this->getUrl()); - } - - $user = 'www-data'; - $group = 'www-data'; - if ($this->input->isInteractive()) { - if (!$skipDownload) { - $skipDownload = !$this->confirm(trans('commands.upgrade.skipDownload'), true); - } - - if (is_null($this->option('user'))) { - $userDetails = function_exists('posix_getpwuid') ? posix_getpwuid(fileowner('public')) : []; - $user = $userDetails['name'] ?? 'www-data'; - - $message = trans('commands.upgrade.webserver_user', ['user' => $user]); - if (!$this->confirm($message, true)) { - $user = $this->anticipate( - trans('commands.upgrade.name_webserver'), - [ - 'www-data', - 'nginx', - 'apache', - ] - ); - } - } - - if (is_null($this->option('group'))) { - $groupDetails = function_exists('posix_getgrgid') ? posix_getgrgid(filegroup('public')) : []; - $group = $groupDetails['name'] ?? 'www-data'; - - $message = trans('commands.upgrade.group_webserver', ['group' => $user]); - if (!$this->confirm($message, true)) { - $group = $this->anticipate( - trans('commands.upgrade.group_webserver_question'), - [ - 'www-data', - 'nginx', - 'apache', - ] - ); - } - } - - if (!$this->confirm(trans('commands.upgrade.are_your_sure'))) { - $this->warn(trans('commands.upgrade.terminated')); - - return; - } - } - - ini_set('output_buffering', '0'); - $bar = $this->output->createProgressBar($skipDownload ? 9 : 10); - $bar->start(); - - if (!$skipDownload) { - $this->withProgress($bar, function () { - $this->line("\$upgrader> curl -L \"{$this->getUrl()}\" | tar -xzv"); - $process = Process::fromShellCommandline("curl -L \"{$this->getUrl()}\" | tar -xzv"); - $process->run(function ($type, $buffer) { - $this->{$type === Process::ERR ? 'error' : 'line'}($buffer); - }); - }); - } - - $this->withProgress($bar, function () { - $this->line('$upgrader> php artisan down'); - $this->call('down'); - }); - - $this->withProgress($bar, function () { - $this->line('$upgrader> chmod -R 755 storage bootstrap/cache'); - $process = new Process(['chmod', '-R', '755', 'storage', 'bootstrap/cache']); - $process->run(function ($type, $buffer) { - $this->{$type === Process::ERR ? 'error' : 'line'}($buffer); - }); - }); - - $this->withProgress($bar, function () { - $command = ['composer', 'install', '--no-ansi']; - if (config('app.env') === 'production' && !config('app.debug')) { - $command[] = '--optimize-autoloader'; - $command[] = '--no-dev'; - } - - $this->line('$upgrader> ' . implode(' ', $command)); - $process = new Process($command); - $process->setTimeout(10 * 60); - $process->run(function ($type, $buffer) { - $this->line($buffer); - }); - }); - - /** @var Application $app */ - $app = require __DIR__ . '/../../../bootstrap/app.php'; - /** @var Kernel $kernel */ - $kernel = $app->make(Kernel::class); - $kernel->bootstrap(); - $this->setLaravel($app); - - $this->withProgress($bar, function () { - $this->line('$upgrader> php artisan view:clear'); - $this->call('view:clear'); - }); - - $this->withProgress($bar, function () { - $this->line('$upgrader> php artisan config:clear'); - $this->call('config:clear'); - }); - - $this->withProgress($bar, function () { - $this->line('$upgrader> php artisan migrate --force --seed'); - $this->call('migrate', ['--force' => true, '--seed' => true]); - }); - - $this->withProgress($bar, function () use ($user, $group) { - $this->line("\$upgrader> chown -R {$user}:{$group} *"); - $process = Process::fromShellCommandline("chown -R {$user}:{$group} *", $this->getLaravel()->basePath()); - $process->setTimeout(10 * 60); - $process->run(function ($type, $buffer) { - $this->{$type === Process::ERR ? 'error' : 'line'}($buffer); - }); - }); - - $this->withProgress($bar, function () { - $this->line('$upgrader> php artisan queue:restart'); - $this->call('queue:restart'); - }); - - $this->withProgress($bar, function () { - $this->line('$upgrader> php artisan up'); - $this->call('up'); - }); - - $this->newLine(2); - $this->info(trans('commands.upgrade.success')); - } - - protected function withProgress(ProgressBar $bar, Closure $callback): void - { - $bar->clear(); - $callback(); - $bar->advance(); - $bar->display(); - } - - protected function getUrl(): string - { - if ($this->option('url')) { - return $this->option('url'); - } - - return sprintf(self::DEFAULT_URL, $this->option('release') ? 'download/v' . $this->option('release') : 'latest/download'); - } -} diff --git a/lang/en/commands.php b/lang/en/commands.php index 7390103f2..a24222b3a 100644 --- a/lang/en/commands.php +++ b/lang/en/commands.php @@ -57,18 +57,4 @@ return [ 'error_message' => 'An error was encountered while processing Schedule: :schedules', ], ], - 'upgrade' => [ - 'integrity' => 'This command does not verify the integrity of downloaded assets. Please ensure that you trust the download source before continuing. If you do not wish to download an archive, please indicate that using the --skip-download flag, or answering "no" to the question below.', - 'source_url' => 'Download Source (set with --url=):', - 'php_version' => 'Cannot execute self-upgrade process. The minimum required PHP version required is 7.4.0, you have :current', - 'skipDownload' => 'Would you like to download and unpack the archive files for the latest version?', - 'webserver_user' => 'Your webserver user has been detected as [{:user}]: is this correct?', - 'name_webserver' => 'Please enter the name of the user running your webserver process. This varies from system to system, but is generally "www-data", "nginx", or "apache".', - 'group_webserver' => 'Your webserver group has been detected as [{:group}]: is this correct?', - 'group_webserver_question' => 'Please enter the name of the group running your webserver process. Normally this is the same as your user.', - 'are_your_sure' => 'Are you sure you want to run the upgrade process for your Panel?', - 'terminated' => 'Upgrade process terminated by user.', - 'success' => 'Panel has been successfully upgraded. Please ensure you also update any Daemon instances', - - ], ];