44 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			44 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| 
								 | 
							
								<?php
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								namespace SparkPlug\Com\Noccy\Docker\Commands\Stack;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								use Spark\Commands\Command;
							 | 
						||
| 
								 | 
							
								use SparkPlug;
							 | 
						||
| 
								 | 
							
								use SparkPlug\Com\Noccy\Docker\Stack\StackManager;
							 | 
						||
| 
								 | 
							
								use Symfony\Component\Console\Input\InputInterface;
							 | 
						||
| 
								 | 
							
								use Symfony\Component\Console\Output\OutputInterface;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								class StatusCommand extends Command
							 | 
						||
| 
								 | 
							
								{
							 | 
						||
| 
								 | 
							
								    protected function configure()
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $this->setName("docker:stack:status")
							 | 
						||
| 
								 | 
							
								            ->setDescription("Show status on registered stacks");
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    protected function execute(InputInterface $input, OutputInterface $output)
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        $stackManager = $this->getStackManager();
							 | 
						||
| 
								 | 
							
								        $stacks = $stackManager->getRegisteredStacks();
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        foreach ($stacks as $stack) {
							 | 
						||
| 
								 | 
							
								            $output->writeln("<fg=yellow>\u{2bbb}</> <fg=white;options=bold>{$stack->getName()}</>");
							 | 
						||
| 
								 | 
							
								            $table = $stack->getContainersTable($output);
							 | 
						||
| 
								 | 
							
								            $table->setStyle('compact');
							 | 
						||
| 
								 | 
							
								            $table->setColumnWidths([ 30, 20, 20, 0 ]);
							 | 
						||
| 
								 | 
							
								            $table->render();
							 | 
						||
| 
								 | 
							
								            $output->writeln("");
							 | 
						||
| 
								 | 
							
								        }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								        return Command::SUCCESS;
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								    private function getStackManager(): StackManager
							 | 
						||
| 
								 | 
							
								    {
							 | 
						||
| 
								 | 
							
								        return new StackManager($this->getEnvironment());
							 | 
						||
| 
								 | 
							
								    }
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 |