Skip to content

Commit

Permalink
install jetstream from command line
Browse files Browse the repository at this point in the history
  • Loading branch information
stephenjude committed Feb 29, 2024
1 parent 15da1c3 commit a582080
Showing 1 changed file with 16 additions and 18 deletions.
34 changes: 16 additions & 18 deletions src/Commands/FilamentJetstreamCommand.php
Original file line number Diff line number Diff line change
Expand Up @@ -20,17 +20,15 @@ public function handle(): int
{
$this->info('Filament Jetstream scaffolding...');

if (! $this->installComposerPackages()) {
if (!$this->installComposerPackages()) {
return self::FAILURE;
}

$this->call('jetstream:install', [
'stack' => 'livewire',
'--verification' => true,
'--dark' => true,
'--teams' => $this->option('teams'),
'--api' => $this->option('api'),
]);
$options = array_filter(['--teams' => $this->option('teams'), '--api' => $this->option('api'),]);

$options = implode(' ', (array_keys($options)));

$this->runCommands(["php artisan jetstream:install livewire --verification --dark $options"]);

$this->configureUser();

Expand Down Expand Up @@ -58,11 +56,11 @@ public function handle(): int
*/
protected function installComposerPackages(): bool
{
if (! $this->hasComposerPackage('filament/filament')) {
if (!$this->hasComposerPackage('filament/filament')) {
return $this->requireComposerPackages('filament/filament:^3.2');
}

if (! $this->hasComposerPackage('laravel/jetstream')) {
if (!$this->hasComposerPackage('laravel/jetstream')) {
return $this->requireComposerPackages('laravel/jetstream:^4.2');
}

Expand Down Expand Up @@ -196,15 +194,15 @@ protected function configurePanel()
{
$filesystem = (new Filesystem);

if (! $filesystem->isEmptyDirectory(app_path('Providers/Filament'))) {
if (!$filesystem->isEmptyDirectory(app_path('Providers/Filament'))) {
collect($filesystem->files(app_path('Providers/Filament')))
->map(fn (\SplFileInfo $fileInfo) => str($fileInfo->getFilename())
->map(fn(\SplFileInfo $fileInfo) => str($fileInfo->getFilename())
->before('.php')
->prepend("App\Providers\Filament")
->append('::class,')
->toString())
->each(
fn ($value) => $this->replaceInFile(search: $value, replace: '', path: config_path('app.php'))
fn($value) => $this->replaceInFile(search: $value, replace: '', path: config_path('app.php'))
);

$filesystem->deleteDirectory(app_path('Providers/Filament'));
Expand Down Expand Up @@ -297,20 +295,20 @@ protected function replaceInFile(string $search, string $replace, string $path):
/**
* Run the given commands.
*/
protected function runCommands($commands): void
protected function runCommands(array $commands): void
{
$process = Process::fromShellCommandline(implode(' && ', $commands), null, null, null, null);

if ('\\' !== DIRECTORY_SEPARATOR && file_exists('/dev/tty') && is_readable('/dev/tty')) {
try {
$process->setTty(true);
} catch (\RuntimeException $e) {
$this->output->writeln(' <bg=yellow;fg=black> WARN </> ' . $e->getMessage() . PHP_EOL);
$this->output->writeln(' <bg=yellow;fg=black> WARN </> '.$e->getMessage().PHP_EOL);
}
}

$process->run(function ($type, $line) {
$this->output->write(' ' . $line);
$this->output->write(' '.$line);
});
}

Expand All @@ -328,14 +326,14 @@ protected function hasComposerPackage(string $package): bool
/**
* Installs the given Composer Packages into the application.
*/
protected function requireComposerPackages(array | string $packages): bool
protected function requireComposerPackages(array|string $packages): bool
{
$command = array_merge(
['composer', 'require'],
is_array($packages) ? $packages : func_get_args()
);

return ! (new Process($command, base_path(), ['COMPOSER_MEMORY_LIMIT' => '-1']))
return !(new Process($command, base_path(), ['COMPOSER_MEMORY_LIMIT' => '-1']))
->setTimeout(null)
->run(function ($type, $output) {
$this->output->write($output);
Expand Down

0 comments on commit a582080

Please sign in to comment.