<?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)); } }