use Cubist\Backpack\app\Console\Commands\LocaleCopy;
use Cubist\Backpack\app\Console\Commands\LocaleSlugReset;
use Cubist\Backpack\app\Console\Commands\SearchIndexCommand;
+use Cubist\Backpack\app\Console\Commands\UpdateCommand;
use Illuminate\Support\Facades\Blade;
use Illuminate\Support\ServiceProvider;
{
$this->commands([
InstallCommand::class,
+ UpdateCommand::class,
GenerateCommand::class,
MigrateCommand::class,
SearchIndexCommand::class,
public function handle()
{
- $devPackages = ['barryvdh/laravel-ide-helper', 'filp/whoops', 'laravel/tinker'];
+ $devPackages = ['barryvdh/laravel-ide-helper', 'filp/whoops', 'laravel/tinker:^1.0'];
$commands = [
- 'Install dev dependencies' => ['composer require --dev ' . implode(' ' , $devPackages)],
+ 'Install backpack' => ['php artisan backpack:base:install', 'php artisan backpack:crud:install'],
+ 'Install backpack addons' => [
+ // BackupManager
+ 'php artisan vendor:publish --provider="Backpack\BackupManager\BackupManagerServiceProvider"',
+ 'php artisan backpack:base:add-sidebar-content "<li><a href=\'{{ backpack_url(\'backup\') }}\'><i class=\'fa fa-hdd-o\'></i> <span>Backups</span></a></li>"',
+ // LogManager
+ 'php artisan backpack:base:add-sidebar-content "<li><a href=\'{{ backpack_url(\'log\') }}\'><i class=\'fa fa-terminal\'></i> <span>Logs</span></a></li>"',
+ // Permission Manager
+ 'php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="migrations"',
+ 'php artisan migrate',
+ 'php artisan vendor:publish --provider="Spatie\Permission\PermissionServiceProvider" --tag="config"',
+ 'php artisan vendor:publish --provider="Backpack\PermissionManager\PermissionManagerServiceProvider"',
+ 'php artisan backpack:base:add-sidebar-content "<li class=\'nav-item nav-dropdown\'><a class=\'nav-link nav-dropdown-toggle\' href=\'#\'><i class=\'nav-icon fa fa-group\'></i>Authentication</a><ul class=\'nav-dropdown-items\'><li class=\'nav-item\'><a class=\'nav-link\' href=\'{{ backpack_url(\'user\') }}\'><i class=\'nav-icon fa fa-user\'></i><span>Users</span></a></li><li class=\'nav-item\'><a class=\'nav-link\' href=\'{{ backpack_url(\'role\') }}\'><i class=\'nav-icon fa fa-group\'></i> <span>Roles</span></a></li><li class=\'nav-item\'><a class=\'nav-link\' href=\'{{ backpack_url(\'permission\') }}\'><i class=\'nav-icon fa fa-key\'></i><span>Permissions</span></a></li></ul></li>"',
+ ],
+ 'Install dev dependencies' => ['composer require --dev ' . implode(' ', $devPackages)],
"Dropzone" => 'php artisan gaspertrix:backpack:dropzone:install',
'Laravel media library' => [
'php artisan vendor:publish --provider="Spatie\MediaLibrary\MediaLibraryServiceProvider" --tag="migrations"',
'php artisan migrate',
'php artisan cubist:magic:migrate'
],
- 'Clear caches' => ['php artisan cache:clear'],
+ 'Clear caches' => ['php artisan optimize:clear'],
];
$this->progressBar = $this->output->createProgressBar(count($commands));
--- /dev/null
+<?php
+
+namespace Cubist\Backpack\app\Console\Commands;
+
+class UpdateCommand extends CubistCommand
+{
+ protected $signature = 'cubist:update';
+
+ /**
+ * The console command description.
+ *
+ * @var string
+ */
+ protected $description = 'Update everything';
+
+ public function handle()
+ {
+ $commands = [
+ 'Update packages' => ['composer update -v --no-progress --profile --prefer-dist'],
+ 'Dump autoload' => ['composer dump-autoload'],
+ 'Clear cache' => ['php artisan optimize:clear'],
+ 'Generate magic models' => ['php artisan cubist:magic:generate'],
+ 'Clear caches' => ['php artisan optimize:clear'],
+ ];
+
+ $this->progressBar = $this->output->createProgressBar(count($commands));
+ $this->progressBar->start();
+ $this->info(' Cubist installation, please wait');
+
+ foreach ($commands as $label => $command) {
+ $this->line(' Run ' . $label);
+ if (is_string($command)) {
+ $command = [$command];
+ }
+ foreach ($command as $cmd) {
+ $this->executeProcess($cmd);
+ }
+
+ $this->progressBar->advance();
+ }
+ $this->info(" Cubist successfully installed.");
+ }
+}