qlg.tsgz.moe/vendor/swoole/tools/check-package.php
2019-09-06 23:53:10 +08:00

78 lines
1.3 KiB
PHP
Executable File

#!/usr/bin/env php
<?php
define('BASE_DIR', dirname(__DIR__));
if (empty($argv[1]))
{
$DIR = BASE_DIR . '/tests';
}
else
{
$DIR = BASE_DIR . '/' . $argv[1];
}
$role = empty($argv[2]) ? 'test' : 'src';
$cmd = empty($argv[3]) ? 'list' : 'check';
$_files = [];
search($DIR, $_files);
foreach ($_files as $f)
{
$filename = str_replace($DIR . '/', '', $f);
if ($cmd == 'list')
{
echo '<file name="' . $filename . '" role="' . $role . '" />' . "\n";
}
elseif ($cmd == 'check')
{
if (!inPackage($filename))
{
echo "$filename\n";
}
}
}
function search($path, &$_files)
{
$dirs = _scandir($path);
foreach ($dirs as $d)
{
$_path = $path . '/' . $d;
if (!is_dir($_path))
{
$_files[] = $_path;
continue;
}
else
{
search($_path, $_files);
}
}
}
function _scandir($dir)
{
$list = scandir($dir);
return array_filter($list, function ($f)
{
return $f[0] !== '.';
});
}
function inPackage($file)
{
static $content = null;
if (!$content)
{
$content = file_get_contents(BASE_DIR . '/package.xml');
}
if (strpos($content, $file) === false)
{
return false;
}
else
{
return true;
}
}