85 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
			
		
		
	
	
			85 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
		
			Executable File
		
	
	
	
	
#!/usr/bin/env php
 | 
						|
<?php
 | 
						|
 | 
						|
$shortoptions = '';
 | 
						|
$longoptions = array('plugin=');
 | 
						|
 | 
						|
 | 
						|
$helptext = <<<ENDOFHELP
 | 
						|
Build HTML documentation from doc comments in source.
 | 
						|
 | 
						|
Usage: docgen.php [options] output-directory
 | 
						|
Options:
 | 
						|
 | 
						|
  --plugin=...     build docs for given plugin instead of core
 | 
						|
 | 
						|
 | 
						|
ENDOFHELP;
 | 
						|
 | 
						|
define('INSTALLDIR', realpath(dirname(__FILE__) . '/..'));
 | 
						|
require_once INSTALLDIR.'/scripts/commandline.inc';
 | 
						|
 | 
						|
$pattern = "*.php *.inc";
 | 
						|
$exclude = 'config.php */extlib/* */local/* */plugins/* */scripts/*';
 | 
						|
 | 
						|
if (isset($args[0])) {
 | 
						|
    $outdir = $args[0];
 | 
						|
    if (!is_dir($outdir)) {
 | 
						|
        echo "Output directory $outdir is not a directory.\n";
 | 
						|
        exit(1);
 | 
						|
    }
 | 
						|
} else {
 | 
						|
    print $helptext;
 | 
						|
    exit(1);
 | 
						|
}
 | 
						|
 | 
						|
if (have_option('p', 'plugin')) {
 | 
						|
    $plugin = get_option_value('plugin');
 | 
						|
    $exclude = "*/extlib/*";
 | 
						|
    $indir = INSTALLDIR . "/plugins/" . $plugin;
 | 
						|
    if (!is_dir($indir)) {
 | 
						|
        $indir = INSTALLDIR . "/plugins";
 | 
						|
        $filename = "{$plugin}Plugin.php";
 | 
						|
        if (!file_exists("$indir/$filename")) {
 | 
						|
            echo "Can't find plugin $plugin.\n";
 | 
						|
            exit(1);
 | 
						|
        } else {
 | 
						|
            $pattern = $filename;
 | 
						|
        }
 | 
						|
    }
 | 
						|
} else {
 | 
						|
    $indir = INSTALLDIR;
 | 
						|
}
 | 
						|
 | 
						|
$replacements = array(
 | 
						|
    '%%version%%' => STATUSNET_VERSION,
 | 
						|
    '%%indir%%' => $indir,
 | 
						|
    '%%pattern%%' => $pattern,
 | 
						|
    '%%outdir%%' => $outdir,
 | 
						|
    '%%htmlout%%' => $outdir,
 | 
						|
    '%%exclude%%' => $exclude,
 | 
						|
);
 | 
						|
 | 
						|
var_dump($replacements);
 | 
						|
 | 
						|
$template = file_get_contents(dirname(__FILE__) . '/doxygen.tmpl');
 | 
						|
$template = strtr($template, $replacements);
 | 
						|
 | 
						|
$templateFile = tempnam(sys_get_temp_dir(), 'statusnet-doxygen');
 | 
						|
file_put_contents($templateFile, $template);
 | 
						|
 | 
						|
$cmd = "doxygen " . escapeshellarg($templateFile);
 | 
						|
 | 
						|
$retval = 0;
 | 
						|
passthru($cmd, $retval);
 | 
						|
 | 
						|
if ($retval == 0) {
 | 
						|
    echo "Done!\n";
 | 
						|
    unlink($templateFile);
 | 
						|
    exit(0);
 | 
						|
} else {
 | 
						|
    echo "Failed! Doxygen config left in $templateFile\n";
 | 
						|
    exit($retval);
 | 
						|
}
 | 
						|
 |