PHP Classes

File: tools/audit_helper.php

Recommend this page to a friend!
  Classes of Scott Arciszewski   CMS Airship   tools/audit_helper.php   Download  
File: tools/audit_helper.php
Role: Auxiliary script
Content type: text/plain
Description: Auxiliary script
Class: CMS Airship
Content management system with security features
Author: By
Last change: Only strict usage of in_array()
Date: 6 years ago
Size: 1,447 bytes
 

Contents

Class file image Download
<?php
declare(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";
}