diff options
Diffstat (limited to 'src/GitModule.php')
-rw-r--r-- | src/GitModule.php | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/GitModule.php b/src/GitModule.php new file mode 100644 index 0000000..3927992 --- /dev/null +++ b/src/GitModule.php @@ -0,0 +1,45 @@ +<?php + +namespace PHPIAC\Modules; + +use PHPIAC\Connection; +use PHPIAC\Module\Module; +use PHPIAC\Modules\Support\HasPermissions; + +class GitModule extends Module +{ + use HasPermissions; + + protected string $repo; + protected string $dest; + + /** + * @inheritDoc + */ + public function checkState(): bool + { + Connection::enablePty(); + + Connection::exec("ls $this->dest"); + $ls = Connection::read(); + + $state = ! str_contains($ls, 'No such file or directory'); + + Connection::disablePty(); + + return $state; + } + + /** + * @inheritDoc + */ + public function getCommands(): array + { + Connection::exec( + "sudo git clone $this->repo $this->dest" . PHP_EOL . + $this->getPermissions($this->dest) + ); + + return []; + } +} |