Вход Регистрация
Файл: vendor/laravel/framework/src/Illuminate/Foundation/Console/DevCommand.php
Строк: 112
<?php

namespace IlluminateFoundationConsole;

use 
IlluminateConsoleCommand;
use 
IlluminateConsoleProhibitable;
use 
IlluminateFoundationDevCommands;
use 
IlluminateSupportNodePackageManager;
use 
SymfonyComponentConsoleAttributeAsCommand;

use function 
Termwindterminal;

#[AsCommand(name: 'dev')]
class DevCommand extends Command
{
    use 
Prohibitable;

    
/**
     * The console command name.
     *
     * @var string
     */
    
protected $name 'dev';

    
/**
     * The console command description.
     *
     * @var string
     */
    
protected $description 'Run the dev processes';

    
/**
     * Execute the console command.
     *
     * @return int
     *
     * @throws Exception
     */
    
public function handle(NodePackageManager $packageManager)
    {
        if (
$this->isProhibited()) {
            return 
self::FAILURE;
        }

        
$devCommands DevCommands::commands();

        
$commands array_column($devCommands'command');
        
$colors array_column($devCommands'color');
        
$names array_column($devCommands'name');

        
$longestName max(array_map(strlen(...), $names));

        
$columns getenv('COLUMNS');

        
putenv('COLUMNS='.max(terminal()->width() - $longestName 41));

        
$this->line('');

        foreach (
$devCommands as $devCommand) {
            
$this->line(
                
sprintf(
                    
'<fg=%s>[%s]</>%s%s',
                    
$devCommand['color'],
                    
$devCommand['name'],
                    
str_repeat(' ', ($longestName strlen($devCommand['name'])) + 1),
                    
$devCommand['command'],
                ),
            );
        }

        
$this->line('');

        
$command $packageManager->getExecCommand(sprintf(
            
'concurrently -c "%s" "%s" --names=%s --kill-others-on-fail',
            
implode(','$colors),
            
implode('" "'$commands),
            
implode(','$names)
        ));

        if (
extension_loaded('pcntl')) {
            
pcntl_exec('/usr/bin/env', ['sh''-c'$command]);
        }

        
passthru($command$exitCode);

        
$columns === false putenv('COLUMNS') : putenv("COLUMNS={$columns}");

        return 
$exitCode;
    }
}
Онлайн: 2
Реклама