koel/app/Console/Commands/Init.php

81 lines
2.2 KiB
PHP
Raw Normal View History

2015-12-14 22:37:46 +00:00
<?php
namespace App\Console\Commands;
2016-01-15 02:16:58 +00:00
use App\Models\User;
2016-01-15 07:28:34 +00:00
use DB;
2016-04-02 13:16:09 +00:00
use Exception;
2015-12-14 22:37:46 +00:00
use Illuminate\Console\Command;
use Illuminate\Support\Facades\Artisan;
class Init extends Command
{
/**
* The name and signature of the console command.
*
* @var string
*/
2016-01-15 02:16:58 +00:00
protected $signature = 'koel:init';
2015-12-14 22:37:46 +00:00
/**
* The console command description.
*
* @var string
*/
2016-01-15 02:16:58 +00:00
protected $description = 'Install or upgrade Koel';
2015-12-14 22:37:46 +00:00
/**
* Execute the console command.
*
* @return mixed
*/
public function handle()
{
2016-01-15 02:16:58 +00:00
try {
DB::connection();
2016-04-02 13:16:09 +00:00
} catch (Exception $e) {
2016-01-15 02:16:58 +00:00
$this->error('Unable to connect to database.');
$this->error('Please fill valid database credentials into .env and rerun this command.');
2015-12-14 22:37:46 +00:00
2016-01-15 02:16:58 +00:00
return;
}
2016-01-15 07:28:34 +00:00
2016-01-15 02:16:58 +00:00
$this->comment('Attempting to install or upgrade Koel.');
$this->comment('Remember, you can always install/upgrade manually following the guide here:');
$this->info("📙 https://github.com/phanan/koel/wiki\n");
2015-12-14 22:37:46 +00:00
2016-01-15 02:16:58 +00:00
if (!env('APP_KEY')) {
$this->info('Generating app key');
Artisan::call('key:generate');
} else {
$this->comment('App key exists -- skipping');
}
2015-12-14 22:37:46 +00:00
2016-01-15 02:16:58 +00:00
if (!env('JWT_SECRET')) {
$this->info('Generating JWT secret');
Artisan::call('koel:generate-jwt-secret');
} else {
$this->comment('JWT secret exists -- skipping');
}
2016-01-15 07:28:34 +00:00
2016-01-15 02:16:58 +00:00
$this->info('Migrating database');
2015-12-14 22:37:46 +00:00
Artisan::call('migrate', ['--force' => true]);
2016-01-15 02:16:58 +00:00
if (!User::count()) {
$this->info('Seeding initial data');
Artisan::call('db:seed', ['--force' => true]);
} else {
$this->comment('Data seeded -- skipping');
}
2015-12-14 22:37:46 +00:00
$this->info('Executing npm install, gulp and whatnot');
2016-01-15 02:16:58 +00:00
system('npm install');
2015-12-14 22:37:46 +00:00
2016-01-15 02:16:58 +00:00
$this->comment("\n🎆 Success! You can now run Koel from localhost with `php artisan serve`.");
$this->comment('Again, for more configuration guidance, refer to');
$this->info('📙 https://github.com/phanan/koel/wiki.');
$this->comment('WIKI ROCKS WIKI RULES.');
$this->comment('KTHXBYE.');
2015-12-14 22:37:46 +00:00
}
}