mirror of
https://github.com/koel/koel
synced 2024-12-25 20:13:06 +00:00
49 lines
1.4 KiB
PHP
49 lines
1.4 KiB
PHP
<?php
|
||
|
||
namespace App\Console\Commands\Storage;
|
||
|
||
use App\Facades\License;
|
||
use App\Models\Setting;
|
||
use Illuminate\Console\Command;
|
||
|
||
class StorageCommand extends Command
|
||
{
|
||
protected $signature = 'koel:storage';
|
||
protected $description = 'Set up and configure Koel’s storage';
|
||
|
||
public function handle(): int
|
||
{
|
||
$this->info('This command will set up and configure Koel’s storage.');
|
||
|
||
$this->info('Current storage configuration:');
|
||
$this->components->twoColumnDetail('Driver', config('koel.storage_driver'));
|
||
|
||
if (config('koel.storage_driver') === 'local') {
|
||
$this->components->twoColumnDetail('Media path', Setting::get('media_path') ?: '<not set>');
|
||
}
|
||
|
||
if (License::isPlus()) {
|
||
$choices = [
|
||
'local' => 'This server',
|
||
's3' => 'Amazon S3 or compatible services (DO Spaces, Cloudflare R2, etc.)',
|
||
'dropbox' => 'Dropbox',
|
||
];
|
||
|
||
$driver = $this->choice(
|
||
'Where do you want to store your media files?',
|
||
$choices,
|
||
config('koel.storage_driver')
|
||
);
|
||
} else {
|
||
$driver = 'local';
|
||
}
|
||
|
||
if ($this->call("koel:storage:$driver") === self::SUCCESS) {
|
||
$this->output->success('Storage has been set up.');
|
||
|
||
return self::SUCCESS;
|
||
}
|
||
|
||
return self::FAILURE;
|
||
}
|
||
}
|