Added plugins and build tools

This commit is contained in:
2021-12-09 00:58:28 +01:00
parent a0d68a606c
commit eefe53a438
46 changed files with 4049 additions and 1 deletions

View File

@ -0,0 +1,37 @@
<?php
namespace SparkPlug\Com\Noccy\Docker\DockerCompose;
class Service
{
private array $service;
private array $environment = [];
private Stack|null $stack;
public function __construct(array $service, ?Stack $stack)
{
$this->service = $service;
$this->stack = $stack;
foreach ($this->service['environment']??[] as $k=>$v) {
if (is_numeric($k)) {
[$k, $v] = explode("=", $v, 2);
}
$this->environment[$k] = $v;
}
}
public function getImage():?String
{
return $this->service['image']??null;
}
public function getEnvironment(): array
{
return $this->environment;
}
}

View File

@ -0,0 +1,42 @@
<?php
namespace SparkPlug\Com\Noccy\Docker\DockerCompose;
use Symfony\Component\Yaml\Yaml;
class Stack
{
private array $compose;
private string $version;
private array $services;
public function __construct(string $filename)
{
$this->compose = Yaml::parseFile($filename);
$this->version = $this->compose['version']??null;
$this->enumServices();
}
private function enumServices()
{
foreach ($this->compose['services'] as $service=>$config) {
$this->services[$service] = new Service($config, $this);
}
}
public function getServiceNames(): array
{
return array_keys($this->services);
}
public function getService(string $name): ?Service
{
return $this->services[$name] ?? null;
}
}