mirror of
https://github.com/archtechx/tenancy.git
synced 2026-02-05 16:14:03 +00:00
* Using laravel components * Ensure commands returns success * update tests * clean * bump EndBug version * Update ci.yml * Update ci.yml * Update ci.yml * revert CI changes * Update ci.yml * Update ci.yml * Update ci.yml * revert CI changes to it's original state * fix typos, improve code * improve Install & TenantList commands * php-cs-fixer * type GitHub properly Co-authored-by: Abrar Ahmad <abrar.dev99@gmail.com> Co-authored-by: Samuel Štancl <samuel@archte.ch> Co-authored-by: Samuel Štancl <samuel.stancl@gmail.com>
62 lines
1.7 KiB
PHP
62 lines
1.7 KiB
PHP
<?php
|
|
|
|
declare(strict_types=1);
|
|
|
|
namespace Stancl\Tenancy\Commands;
|
|
|
|
use Exception;
|
|
use Illuminate\Console\Command;
|
|
use Illuminate\Support\LazyCollection;
|
|
use Stancl\Tenancy\Actions\CreateStorageSymlinksAction;
|
|
use Stancl\Tenancy\Actions\RemoveStorageSymlinksAction;
|
|
use Stancl\Tenancy\Concerns\HasATenantsOption;
|
|
|
|
class Link extends Command
|
|
{
|
|
use HasATenantsOption;
|
|
|
|
protected $signature = 'tenants:link
|
|
{--tenants=* : The tenant(s) to run the command for. Default: all}
|
|
{--relative : Create the symbolic link using relative paths}
|
|
{--force : Recreate existing symbolic links}
|
|
{--remove : Remove symbolic links}';
|
|
|
|
protected $description = 'Create or remove tenant symbolic links.';
|
|
|
|
public function handle(): int
|
|
{
|
|
$tenants = $this->getTenants();
|
|
|
|
try {
|
|
if ($this->option('remove')) {
|
|
$this->removeLinks($tenants);
|
|
} else {
|
|
$this->createLinks($tenants);
|
|
}
|
|
} catch (Exception $exception) {
|
|
$this->error($exception->getMessage());
|
|
|
|
return 1;
|
|
}
|
|
|
|
return 0;
|
|
}
|
|
|
|
protected function removeLinks(LazyCollection $tenants): void
|
|
{
|
|
RemoveStorageSymlinksAction::handle($tenants);
|
|
|
|
$this->components->info('The links have been removed.');
|
|
}
|
|
|
|
protected function createLinks(LazyCollection $tenants): void
|
|
{
|
|
CreateStorageSymlinksAction::handle(
|
|
$tenants,
|
|
(bool) ($this->option('relative') ?? false),
|
|
(bool) ($this->option('force') ?? false),
|
|
);
|
|
|
|
$this->components->info('The links have been created.');
|
|
}
|
|
}
|