static-php-cli/src/SPC/doctor/item/OSCheckList.php

26 lines
722 B
PHP
Raw Normal View History

2023-04-22 21:23:12 +08:00
<?php
declare(strict_types=1);
namespace SPC\doctor\item;
use SPC\builder\linux\SystemUtil;
2023-04-22 21:23:12 +08:00
use SPC\builder\traits\UnixSystemUtilTrait;
use SPC\doctor\AsCheckItem;
use SPC\doctor\CheckResult;
class OSCheckList
{
use UnixSystemUtilTrait;
2023-06-28 18:38:14 +08:00
#[AsCheckItem('if current OS are supported', level: 999)]
2023-04-22 21:23:12 +08:00
public function checkOS(): ?CheckResult
{
2023-10-15 13:07:13 +08:00
if (!in_array(PHP_OS_FAMILY, ['Darwin', 'Linux', 'BSD'])) {
2023-12-23 00:23:47 +08:00
return CheckResult::fail('Current OS is not supported: ' . PHP_OS_FAMILY);
2023-04-22 21:23:12 +08:00
}
$distro = PHP_OS_FAMILY === 'Linux' ? (' ' . SystemUtil::getOSRelease()['dist']) : '';
return CheckResult::ok(PHP_OS_FAMILY . ' ' . php_uname('m') . $distro . ', supported');
2023-04-22 21:23:12 +08:00
}
}