| 
<?phpdeclare(strict_types=1);
 
 use Airship\Engine\Security\Util;
 
 require_once \dirname(__DIR__).'/src/bootstrap.php';
 
 /**
 * Generates a list of all files -- use this for narrowing
 * the scope of a pre-release code audit.
 */
 
 if ($argc > 1) {
 $extensions = \array_slice($argv, 1);
 } else {
 $extensions = ['php', 'twig'];
 }
 $fileList = [];
 $repository = 'https://github.com/paragonie/airship/blob/master/';
 $cutoff = \strlen(\dirname(__DIR__) . '/src') + 1;
 $dirs = [];
 
 $allDirs = \Airship\list_all_files(\dirname(__DIR__) . '/src');
 \sort($allDirs, \SORT_STRING & ~\SORT_FLAG_CASE);
 foreach ($allDirs as $file) {
 $print = \trim(Util::subString($file, $cutoff), '/');
 
 $pieces = \explode('/', $print);
 $max = \count($pieces) - 1;
 $name = \array_pop($pieces);
 
 if (Util::subString($print, 0, 3) === 'tmp' || Util::subString($print, 0, 5) === 'files') {
 continue;
 }
 
 $currentDir = \implode('/', $pieces);
 if ($max > 0 && !isset($dirs[$currentDir])) {
 echo \str_repeat(' ', 3 * ($max - 1)) . '- [ ] ';
 echo $pieces[$max - 1];
 $dirs[$currentDir] = true;
 echo "\n";
 }
 if (\preg_match('/\.([^.]+)$/', $name, $m)) {
 if (!\in_array($m[1], $extensions, true)) {
 continue;
 }
 } else {
 continue;
 }
 
 echo \str_repeat(' ', 3 * $max) . '- [ ] ';
 echo '[' . $name . '](' . $repository . $print . ')';
 echo "\n";
 }
 
 |