forked from GNUsocial/gnu-social
		
	
		
			
				
	
	
		
			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);
 | |
| }
 | |
| 
 |