static function config($key = null, $value = null, $guess_repo = true)
{
if ($value !== null) {
$cmd = 'config --replace-all ';
if ($value === true || $value === false) {
$cmd .= ' --bool ';
$value = $value ? 'true' : 'false';
} elseif (is_int($value)) {
$cmd .= ' --int ';
}
return trim(self::exec($cmd . escapeshellarg($key) . ' ' . escapeshellarg($value), null, null, null, $guess_repo));
} else {
try {
return trim(self::exec('config --get ' . escapeshellarg($key), null, null, null, $guess_repo));
} catch (GitError $e) {
if (trim($e->getMessage()) === '') {
return null;
}
throw $e;
}
}
}