Added plugins and build tools
This commit is contained in:
		
							
								
								
									
										54
									
								
								plugins/com.noccy.docker/sparkplug.php
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										54
									
								
								plugins/com.noccy.docker/sparkplug.php
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,54 @@
 | 
			
		||||
<?php // "name":"Docker plugin for SparkPlug", "author":"Noccy"
 | 
			
		||||
 | 
			
		||||
namespace SparkPlug\Com\Noccy\Docker;
 | 
			
		||||
 | 
			
		||||
use Spark\Commands\Command;
 | 
			
		||||
use SparkPlug;
 | 
			
		||||
use SparkPlug\Com\Noccy\Docker\DockerCompose\Stack;
 | 
			
		||||
use Symfony\Component\Console\Input\InputInterface;
 | 
			
		||||
use Symfony\Component\Console\Output\OutputInterface;
 | 
			
		||||
 | 
			
		||||
class DockerPlug extends SparkPlug
 | 
			
		||||
{
 | 
			
		||||
    private array $compose = [];
 | 
			
		||||
 | 
			
		||||
    private Stack $composeStack;
 | 
			
		||||
 | 
			
		||||
    public function load()
 | 
			
		||||
    {
 | 
			
		||||
        $config = read_config("docker.json");
 | 
			
		||||
        $docker = $config['docker']??[];
 | 
			
		||||
 | 
			
		||||
        $hasCompose = array_key_exists('compose', $docker);
 | 
			
		||||
        $hasBuild = array_key_exists('build', $docker);
 | 
			
		||||
 | 
			
		||||
        if ($hasCompose) {
 | 
			
		||||
            $this->compose = $docker['compose'];
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if ($hasCompose || $hasBuild) {
 | 
			
		||||
            register_command(new DockerUpCommand);
 | 
			
		||||
            register_command(new DockerDownCommand);
 | 
			
		||||
            register_command(new DockerStatusCommand);
 | 
			
		||||
        }
 | 
			
		||||
        if ($hasBuild) {
 | 
			
		||||
            register_command(new DockerBuildCommand);
 | 
			
		||||
            register_command(new DockerExecCommand);
 | 
			
		||||
        }
 | 
			
		||||
        register_command(new DockerDbExportCommand);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    public function getComposeStack(): ?Stack
 | 
			
		||||
    {
 | 
			
		||||
        $base = $this->getProjectDirectory();
 | 
			
		||||
        if (empty($this->composeStack)) {
 | 
			
		||||
            $composeFile = $base . "/" . ($this->compose['file']??'docker-compose.yml');
 | 
			
		||||
            $this->composeStack = new Stack($composeFile);
 | 
			
		||||
        }
 | 
			
		||||
        return $this->composeStack;
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
//if (file_exists(get_environment()->getConfigDirectory()."/maker.json")) {
 | 
			
		||||
register_plugin("com.noccy.docker", new DockerPlug());
 | 
			
		||||
//}
 | 
			
		||||
		Reference in New Issue
	
	Block a user