41 lines
917 B
PHP
41 lines
917 B
PHP
|
<?php
|
||
|
namespace nur\tools\compctl;
|
||
|
|
||
|
use Exception;
|
||
|
use nur\A;
|
||
|
use nur\shell;
|
||
|
use nur\SL;
|
||
|
|
||
|
class git {
|
||
|
static function setup(): void {
|
||
|
putenv("GIT_DIR");
|
||
|
putenv("GIT_WORK_TREE");
|
||
|
}
|
||
|
|
||
|
protected static function _rcmd(array &$cmd, ?int &$retcode, ?array &$output): void {
|
||
|
$cmd = SL::merge(["git"], $cmd);
|
||
|
shell::exec($cmd, $output, $retcode, "noerr");
|
||
|
}
|
||
|
|
||
|
static function rcmd(?int &$retcode, ...$cmd): ?array {
|
||
|
self::_rcmd($cmd, $retcode, $output);
|
||
|
return $output;
|
||
|
}
|
||
|
|
||
|
static function rcmd1(?int &$retcode, ...$args): ?string {
|
||
|
return A::first(git::rcmd($retcode, ...$args));
|
||
|
}
|
||
|
|
||
|
static function cmd(...$cmd): array {
|
||
|
self::_rcmd($cmd, $retcode, $output);
|
||
|
if ($retcode != 0) {
|
||
|
throw new Exception("error running command ".shell::join($cmd));
|
||
|
}
|
||
|
return $output;
|
||
|
}
|
||
|
|
||
|
static function cmd1(...$args): ?string {
|
||
|
return A::first(git::cmd(...$args));
|
||
|
}
|
||
|
}
|