2016-11-09 17:58:14 -05:00
|
|
|
<?php
|
2016-12-14 21:56:25 +00:00
|
|
|
|
2024-03-12 22:39:16 -04:00
|
|
|
namespace App\Console\Commands\Maintenance;
|
2016-11-09 17:58:14 -05:00
|
|
|
|
2017-09-19 22:10:14 -05:00
|
|
|
use Carbon\Carbon;
|
2016-11-09 17:58:14 -05:00
|
|
|
use Illuminate\Console\Command;
|
2017-09-19 22:10:14 -05:00
|
|
|
use Illuminate\Contracts\Filesystem\Factory as FilesystemFactory;
|
2025-09-24 13:34:19 +02:00
|
|
|
use Illuminate\Contracts\Filesystem\Filesystem;
|
2025-04-02 21:43:01 -04:00
|
|
|
use SplFileInfo;
|
2016-11-09 17:58:14 -05:00
|
|
|
|
2017-09-19 22:10:14 -05:00
|
|
|
class CleanServiceBackupFilesCommand extends Command
|
2016-11-09 17:58:14 -05:00
|
|
|
{
|
2021-01-23 12:33:34 -08:00
|
|
|
public const BACKUP_THRESHOLD_MINUTES = 5;
|
2017-11-12 18:16:54 -05:00
|
|
|
|
2017-09-19 22:10:14 -05:00
|
|
|
protected $description = 'Clean orphaned .bak files created when modifying services.';
|
|
|
|
|
|
|
|
|
|
protected $signature = 'p:maintenance:clean-service-backups';
|
2016-11-09 17:58:14 -05:00
|
|
|
|
2022-10-14 10:59:20 -06:00
|
|
|
protected Filesystem $disk;
|
|
|
|
|
|
2016-11-09 17:58:14 -05:00
|
|
|
/**
|
2017-09-19 22:10:14 -05:00
|
|
|
* CleanServiceBackupFilesCommand constructor.
|
2016-11-09 17:58:14 -05:00
|
|
|
*/
|
2017-12-17 13:07:38 -06:00
|
|
|
public function __construct(FilesystemFactory $filesystem)
|
2016-11-09 17:58:14 -05:00
|
|
|
{
|
|
|
|
|
parent::__construct();
|
2017-09-19 22:10:14 -05:00
|
|
|
|
|
|
|
|
$this->disk = $filesystem->disk();
|
2016-11-09 17:58:14 -05:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
2017-09-19 22:10:14 -05:00
|
|
|
* Handle command execution.
|
2016-11-09 17:58:14 -05:00
|
|
|
*/
|
2024-03-19 21:12:27 -04:00
|
|
|
public function handle(): void
|
2016-11-09 17:58:14 -05:00
|
|
|
{
|
2025-04-02 21:43:01 -04:00
|
|
|
/** @var SplFileInfo[] */
|
2017-09-19 22:10:14 -05:00
|
|
|
$files = $this->disk->files('services/.bak');
|
2016-11-09 17:58:14 -05:00
|
|
|
|
2025-04-02 21:43:01 -04:00
|
|
|
collect($files)->each(function ($file) {
|
2017-12-17 13:07:38 -06:00
|
|
|
$lastModified = Carbon::createFromTimestamp($this->disk->lastModified($file->getPath()));
|
|
|
|
|
if ($lastModified->diffInMinutes(Carbon::now()) > self::BACKUP_THRESHOLD_MINUTES) {
|
|
|
|
|
$this->disk->delete($file->getPath());
|
|
|
|
|
$this->info(trans('command/messages.maintenance.deleting_service_backup', ['file' => $file->getFilename()]));
|
2016-11-09 17:58:14 -05:00
|
|
|
}
|
2017-09-19 22:10:14 -05:00
|
|
|
});
|
2016-11-09 17:58:14 -05:00
|
|
|
}
|
|
|
|
|
}
|