36 lines
911 B
PHP
36 lines
911 B
PHP
|
<?php
|
||
|
|
||
|
|
||
|
$files = glob($_SERVER['argv'][1] . "/*.html");
|
||
|
|
||
|
$segments = array_filter(explode('/', $_SERVER['argv'][1]));
|
||
|
$last = array_pop($segments);
|
||
|
$outputFile = implode('/', $segments) . "/{$last}.js";
|
||
|
|
||
|
$functions = array();
|
||
|
$functionBodies = array();
|
||
|
|
||
|
foreach ($files as $file)
|
||
|
{
|
||
|
$content = file_get_contents($file);
|
||
|
|
||
|
$first = "// expose test function names";
|
||
|
|
||
|
$start = strpos($content, $first);
|
||
|
$end = strpos($content, "</script>", $start + strlen($first));
|
||
|
|
||
|
|
||
|
$substring = substr($content, $start+$first, $end-$start);
|
||
|
|
||
|
$function = substr($substring, strpos($substring, "/**"));
|
||
|
|
||
|
$function = str_replace("function ", "", $function);
|
||
|
$function = str_replace("() {", " : function () {", $function);
|
||
|
|
||
|
// parse out the actual function
|
||
|
array_push($functionBodies, trim($function));
|
||
|
|
||
|
}
|
||
|
|
||
|
|
||
|
file_put_contents($outputFile, "exports.tests = {\n".implode(",\n", array_filter($functionBodies)) . '\n}');
|