summaryrefslogtreecommitdiff
path: root/src/GitModule.php
blob: 3927992f425228efafab205048d7117e1f87a969 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
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 [];
    }
}