Merge pull request #1274 from denisdulici/master
Added update::all command
This commit is contained in:
commit
dd93e59e7e
@ -24,14 +24,6 @@ class BillReminder extends Command
|
|||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
protected $description = 'Send reminders for bills';
|
protected $description = 'Send reminders for bills';
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new command instance.
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
parent::__construct();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Execute the console command.
|
* Execute the console command.
|
||||||
|
@ -22,14 +22,6 @@ class FinishUpdate extends Command
|
|||||||
*/
|
*/
|
||||||
protected $description = 'Finish the update process through CLI';
|
protected $description = 'Finish the update process through CLI';
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new command instance.
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
parent::__construct();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Execute the console command.
|
* Execute the console command.
|
||||||
*
|
*
|
||||||
|
@ -24,14 +24,6 @@ class InvoiceReminder extends Command
|
|||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
protected $description = 'Send reminders for invoices';
|
protected $description = 'Send reminders for invoices';
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new command instance.
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
parent::__construct();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Execute the console command.
|
* Execute the console command.
|
||||||
|
@ -38,14 +38,6 @@ class RecurringCheck extends Command
|
|||||||
*/
|
*/
|
||||||
protected $today;
|
protected $today;
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new command instance.
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
parent::__construct();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Execute the console command.
|
* Execute the console command.
|
||||||
*
|
*
|
||||||
@ -118,7 +110,7 @@ class RecurringCheck extends Command
|
|||||||
if ($this->today->eq(Date::parse($model->paid_at->format('Y-m-d')))) {
|
if ($this->today->eq(Date::parse($model->paid_at->format('Y-m-d')))) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
$model->cloneable_relations = [];
|
$model->cloneable_relations = [];
|
||||||
|
|
||||||
// Create new record
|
// Create new record
|
||||||
@ -162,7 +154,7 @@ class RecurringCheck extends Command
|
|||||||
$clone->$date_field = $this->today->format('Y-m-d');
|
$clone->$date_field = $this->today->format('Y-m-d');
|
||||||
$clone->due_at = $this->today->copy()->addDays($diff_days)->format('Y-m-d');
|
$clone->due_at = $this->today->copy()->addDays($diff_days)->format('Y-m-d');
|
||||||
$clone->save();
|
$clone->save();
|
||||||
|
|
||||||
return $clone;
|
return $clone;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -12,7 +12,7 @@ class SampleData extends Command
|
|||||||
*
|
*
|
||||||
* @var string
|
* @var string
|
||||||
*/
|
*/
|
||||||
protected $signature = 'sample-data:seed {--count=100 : total records for each item}';
|
protected $signature = 'sample-data:seed {--count=100 : total records for each item}';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The console command description.
|
* The console command description.
|
||||||
@ -21,16 +21,6 @@ class SampleData extends Command
|
|||||||
*/
|
*/
|
||||||
protected $description = 'Seed for sample data';
|
protected $description = 'Seed for sample data';
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new command instance.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
parent::__construct();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Execute the console command.
|
* Execute the console command.
|
||||||
*
|
*
|
||||||
|
@ -32,14 +32,6 @@ class Update extends Command
|
|||||||
*/
|
*/
|
||||||
protected $description = 'Allows to update Akaunting and modules directly through CLI';
|
protected $description = 'Allows to update Akaunting and modules directly through CLI';
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new command instance.
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
parent::__construct();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Execute the console command.
|
* Execute the console command.
|
||||||
*
|
*
|
||||||
@ -51,7 +43,11 @@ class Update extends Command
|
|||||||
|
|
||||||
$this->alias = $this->argument('alias');
|
$this->alias = $this->argument('alias');
|
||||||
|
|
||||||
$this->new = $this->getNewVersion();
|
if (false === $this->new = $this->getNewVersion()) {
|
||||||
|
$this->error('Not able to get the latest version of ' . $this->alias . '!');
|
||||||
|
|
||||||
|
return self::CMD_ERROR;
|
||||||
|
}
|
||||||
|
|
||||||
$this->old = $this->getOldVersion();
|
$this->old = $this->getOldVersion();
|
||||||
|
|
||||||
@ -79,15 +75,7 @@ class Update extends Command
|
|||||||
|
|
||||||
public function getNewVersion()
|
public function getNewVersion()
|
||||||
{
|
{
|
||||||
$new = $this->argument('new');
|
return ($this->argument('new') == 'latest') ? Versions::latest($this->alias) : $this->argument('new');
|
||||||
|
|
||||||
if ($new == 'latest') {
|
|
||||||
$modules = ($this->alias == 'core') ? [] : [$this->alias];
|
|
||||||
|
|
||||||
$new = Versions::latest($modules)[$this->alias]->data->latest;
|
|
||||||
}
|
|
||||||
|
|
||||||
return $new;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public function getOldVersion()
|
public function getOldVersion()
|
||||||
|
74
app/Console/Commands/UpdateAll.php
Normal file
74
app/Console/Commands/UpdateAll.php
Normal file
@ -0,0 +1,74 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Console\Commands;
|
||||||
|
|
||||||
|
use App\Utilities\Console;
|
||||||
|
use Illuminate\Console\Command;
|
||||||
|
|
||||||
|
class UpdateAll extends Command
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* The name and signature of the console command.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $signature = 'update:all {company=1}';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The console command description.
|
||||||
|
*
|
||||||
|
* @var string
|
||||||
|
*/
|
||||||
|
protected $description = 'Allows to update Akaunting and all modules at once';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Execute the console command.
|
||||||
|
*
|
||||||
|
* @return mixed
|
||||||
|
*/
|
||||||
|
public function handle()
|
||||||
|
{
|
||||||
|
set_time_limit(0); // unlimited
|
||||||
|
|
||||||
|
$this->info('Starting update...');
|
||||||
|
|
||||||
|
// Update core
|
||||||
|
if ($this->runUpdate('core') !== true) {
|
||||||
|
$this->error('Not able to update core!');
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Update modules
|
||||||
|
$modules = module()->all();
|
||||||
|
|
||||||
|
foreach ($modules as $module) {
|
||||||
|
$alias = $module->get('alias');
|
||||||
|
|
||||||
|
if ($this->runUpdate($alias) !== true) {
|
||||||
|
$this->error('Not able to update ' . $alias . '!');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->info('Update finished.');
|
||||||
|
}
|
||||||
|
|
||||||
|
protected function runUpdate($alias)
|
||||||
|
{
|
||||||
|
$this->info('Updating ' . $alias . '...');
|
||||||
|
|
||||||
|
$company_id = $this->argument('company');
|
||||||
|
|
||||||
|
$command = "php artisan update {$alias} {$company_id}";
|
||||||
|
|
||||||
|
if (true !== $result = Console::run($command, true)) {
|
||||||
|
$message = !empty($result) ? $result : trans('modules.errors.finish', ['module' => $alias]);
|
||||||
|
|
||||||
|
$this->error($message);
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
@ -20,16 +20,6 @@ class UserSeed extends Command
|
|||||||
*/
|
*/
|
||||||
protected $description = 'Seed for specific user';
|
protected $description = 'Seed for specific user';
|
||||||
|
|
||||||
/**
|
|
||||||
* Create a new command instance.
|
|
||||||
*
|
|
||||||
* @return void
|
|
||||||
*/
|
|
||||||
public function __construct()
|
|
||||||
{
|
|
||||||
parent::__construct();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Execute the console command.
|
* Execute the console command.
|
||||||
*
|
*
|
||||||
|
@ -158,7 +158,7 @@ class Updater
|
|||||||
|
|
||||||
$modules = module()->all();
|
$modules = module()->all();
|
||||||
|
|
||||||
$versions = Versions::latest($modules);
|
$versions = Versions::all($modules);
|
||||||
|
|
||||||
foreach ($versions as $alias => $latest_version) {
|
foreach ($versions as $alias => $latest_version) {
|
||||||
$installed_version = ($alias == 'core') ? version('short') : module($alias)->get('version');
|
$installed_version = ($alias == 'core') ? version('short') : module($alias)->get('version');
|
||||||
|
@ -2,9 +2,11 @@
|
|||||||
|
|
||||||
namespace App\Utilities;
|
namespace App\Utilities;
|
||||||
|
|
||||||
|
use Akaunting\Module\Module;
|
||||||
use App\Traits\SiteApi;
|
use App\Traits\SiteApi;
|
||||||
use Cache;
|
use Cache;
|
||||||
use Date;
|
use Date;
|
||||||
|
use Illuminate\Support\Arr;
|
||||||
use Parsedown;
|
use Parsedown;
|
||||||
|
|
||||||
class Versions
|
class Versions
|
||||||
@ -52,7 +54,18 @@ class Versions
|
|||||||
return $output;
|
return $output;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function latest($modules = [])
|
public static function latest($alias)
|
||||||
|
{
|
||||||
|
$versions = static::all($alias);
|
||||||
|
|
||||||
|
if (empty($versions[$alias]) || empty($versions[$alias]->data)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return $versions[$alias]->data->latest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static function all($modules = null)
|
||||||
{
|
{
|
||||||
// Get data from cache
|
// Get data from cache
|
||||||
$versions = Cache::get('versions');
|
$versions = Cache::get('versions');
|
||||||
@ -70,8 +83,18 @@ class Versions
|
|||||||
|
|
||||||
$versions['core'] = static::getLatestVersion($url, $info['akaunting']);
|
$versions['core'] = static::getLatestVersion($url, $info['akaunting']);
|
||||||
|
|
||||||
|
$modules = Arr::wrap($modules);
|
||||||
|
|
||||||
// Then modules
|
// Then modules
|
||||||
foreach ($modules as $module) {
|
foreach ($modules as $module) {
|
||||||
|
if (is_string($module)) {
|
||||||
|
$module = module($module);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!$module instanceof Module) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
$alias = $module->get('alias');
|
$alias = $module->get('alias');
|
||||||
$version = $module->get('version');
|
$version = $module->get('version');
|
||||||
|
|
||||||
@ -85,7 +108,7 @@ class Versions
|
|||||||
return $versions;
|
return $versions;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static function getLatestVersion($url, $latest)
|
protected static function getLatestVersion($url, $latest)
|
||||||
{
|
{
|
||||||
if (!$data = static::getResponseData('GET', $url, ['timeout' => 10])) {
|
if (!$data = static::getResponseData('GET', $url, ['timeout' => 10])) {
|
||||||
return $latest;
|
return $latest;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user