#!/usr/bin/php
<?php error_reporting(E_ALL);
use Many\Dev\Used;
$base = dirname(__FILE__);
require_once "{$base}/src/Used.php";
$getCnf = require_once "{$base}/GetUsed.config.php";
/**
* @var mixed parsed arguments
*/
parse_str(implode('&', $argv), $argv);
/**
* @var mixed If "file=" is left out in command
*/
if (!isset($argv['file']) AND $pFilename = ($_SERVER['argv'][1] ?? false) AND is_file($pFilename))
$argv['file'] = $pFilename;
/**
* @var mixed set args
*/
$argv['file'] = $argv['file'] ?? null;
$argv['comment_out'] = ('false' === ($argv['comment_out'] ?? false)) ? false : true;
/**
* @var array check if shell options are called and execute if ['-c', ...]
*/
foreach($getCnf['config']['options'] as $key => $shortOpt)
if (isset($argv[$shortOpt]) AND isset($getCnf[$key]))
exit(json_encode([$key => $getCnf[$key]], JSON_PRETTY_PRINT) . PHP_EOL);
/**
* @var array get use Statements
*/
try {
$getUsed = (new Used)->get($argv['file'], $argv);
} catch(Exception $e) {
$getUsed['print'] = $e->getMessage();
}
/**
* @var string response
*/
if ($getUsed['print'] ?? null) {
$r = [
'file' => trim($argv['file']),
'start' => $_SERVER['REQUEST_TIME_FLOAT'] ?? null,
'end' => microtime(true),
'print' => $getUsed['print'] ?? null,
];
if ('json' === ($argv['return'] ?? null)) {
$r = json_encode($r, JSON_PRETTY_PRINT);
} else {
$rPrint = [];
foreach($r as $k => $v)
if (!in_array($k, ['class', 'function', 'constant']))
$rPrint[] = 'print' === $k ? "\n{$v}" : "// {$k} = {$v}";
$r = sprintf('%1$s%2$s%1$s%1$s', PHP_EOL, implode(PHP_EOL, $rPrint));
}
exit($r);
} exit(sprintf('Error processing the file: %s', $argv['file']));
|