Files
bunny-cli/app/Commands/DeployCommand.php
2021-07-21 19:27:28 +02:00

67 lines
1.5 KiB
PHP

<?php
namespace App\Commands;
use App\Bunny\Filesystem\EdgeStorage;
use App\Bunny\Filesystem\FileCompare;
use App\Bunny\Filesystem\LocalStorage;
use Illuminate\Console\Scheduling\Schedule;
use LaravelZero\Framework\Commands\Command;
class DeployCommand extends Command
{
/**
* The signature of the command.
*
* @var string
*/
protected $signature = 'deploy
{--dir=dist : Root directory to upload}';
/**
* The description of the command.
*
* @var string
*/
protected $description = 'Deploy dist folder to edge storage';
/**
* Execute the console command.
*
* @return int
*/
public function handle(): int
{
$start = microtime(true);
$edgeStorage = new EdgeStorage();
$localStorage = new LocalStorage();
$fileCompare = new FileCompare($localStorage, $edgeStorage, $this);
$localPath = realpath($path = $this->option('dir') ?? 'dist');
if (!file_exists($localPath) || !is_dir($localPath)) {
$this->warn(sprintf('The directory %s does not exists.', $path));
return 1;
}
$edgePath = sprintf('/%s', config('bunny.storage.username'));
$fileCompare->compare($localPath, $edgePath, $start);
return 0;
}
/**
* Define the command's schedule.
*
* @param Schedule $schedule
* @return void
*/
public function schedule(Schedule $schedule): void
{
// $schedule->command(static::class)->everyMinute();
}
}