added install:refresh command
This commit is contained in:
parent
1b8aa23371
commit
43d1dea4a4
@ -57,7 +57,7 @@ class Install extends Command
|
||||
public function handle()
|
||||
{
|
||||
if (($missing_options = $this->getMissingOptions()) && $this->option(self::OPT_NO_INTERACTION)) {
|
||||
$this->line('❌ Some options are missing and --no-interaction is present. Please run the following command for more informations :');
|
||||
$this->line('❌ Some options are missing and --no-interaction is present. Please run the following command for more information :');
|
||||
$this->line('❌ php artisan help install');
|
||||
$this->line('❌ Missing options are : ' . implode(', ', $missing_options));
|
||||
|
||||
@ -111,6 +111,8 @@ class Install extends Command
|
||||
'OPT_ADMIN_PASSWORD'
|
||||
];
|
||||
|
||||
$allowed_empty = ['db_password', 'db_prefix'];
|
||||
|
||||
foreach ($contants as $const) {
|
||||
$option = constant("self::$const");
|
||||
|
||||
@ -118,14 +120,15 @@ class Install extends Command
|
||||
|
||||
$this->$property = $this->option($option);
|
||||
|
||||
if (empty($this->$property)) {
|
||||
// Allow empty password
|
||||
if ($property == 'db_password') {
|
||||
continue;
|
||||
}
|
||||
|
||||
$missing_options[] = $option;
|
||||
if (!empty($this->$property)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (in_array($property, $allowed_empty)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$missing_options[] = $option;
|
||||
}
|
||||
|
||||
return $missing_options;
|
||||
|
58
app/Console/Commands/InstallRefresh.php
Normal file
58
app/Console/Commands/InstallRefresh.php
Normal file
@ -0,0 +1,58 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use App\Models\Auth\User;
|
||||
use App\Models\Common\Company;
|
||||
use Illuminate\Console\Command;
|
||||
|
||||
class InstallRefresh extends Command
|
||||
{
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'install:refresh {--admin-password=123456}';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $description = 'Allows to refresh Akaunting installation directly through CLI';
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle()
|
||||
{
|
||||
$user = User::first();
|
||||
$company = Company::first();
|
||||
|
||||
$this->info('Resetting migrations');
|
||||
$this->callSilent('migrate:reset', [
|
||||
'--force' => true,
|
||||
]);
|
||||
|
||||
$this->info('Installing Akaunting');
|
||||
$this->callSilent('install', [
|
||||
'--db-host' => env('DB_HOST'),
|
||||
'--db-port' => env('DB_PORT'),
|
||||
'--db-name' => env('DB_DATABASE'),
|
||||
'--db-username' => env('DB_USERNAME'),
|
||||
'--db-password' => env('DB_PASSWORD'),
|
||||
'--db-prefix' => env('DB_PREFIX'),
|
||||
'--company-name' => $company->name,
|
||||
'--company-email' => $company->email,
|
||||
'--admin-email' => $user->email,
|
||||
'--admin-password' => $this->option('admin-password'),
|
||||
'--locale' => $company->locale,
|
||||
'--no-interaction' => true,
|
||||
]);
|
||||
|
||||
$this->info('Installation refreshed');
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user