本文整理汇总了PHP中OS::hasBinary方法的典型用法代码示例。如果您正苦于以下问题:PHP OS::hasBinary方法的具体用法?PHP OS::hasBinary怎么用?PHP OS::hasBinary使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类OS
的用法示例。
在下文中一共展示了OS::hasBinary方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: readMercurial
/**
* @return null|string
*/
private function readMercurial()
{
$hgDir = Path::combine($this->repositoryRoot, '.hg');
if (!is_dir($hgDir) || !OS::hasBinary('hg')) {
return null;
}
$hg = Exec::create('hg', '--repository', $this->repositoryRoot);
// Removes everything but the tag if distance is zero.
$hg->run('log', '-r', '.', '--template', '{latesttag}{sub(\'^-0-m.*\', \'\', \'-{latesttagdistance}-m{node|short}\')}');
$tag = Dot::get($hg->getOutput(), 0);
// Actual null if no lines were returned or `hg log` returned actual "null".
// Either way, need to fall back to the revision id.
if ($tag === null || $tag === 'null' || Strings::startsWith($tag, 'null-')) {
$hg->run('id', '-i');
$tag = Dot::get($hg->getOutput(), 0);
// Remove 'dirty' plus from revision id
$tag = rtrim($tag, '+');
}
$summary = $hg->run('summary')->getOutput();
$isDirty = 0 === count(array_filter($summary, function ($line) {
return preg_match('/^commit: .*\\(clean\\)$/', $line) === 1;
}));
if ($isDirty) {
$tag .= '-dirty';
}
return $tag;
}