forked from GNUsocial/gnu-social
		
	
		
			
	
	
		
			85 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
		
		
			
		
	
	
			85 lines
		
	
	
		
			1.9 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
|   | #!/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); | ||
|  | } | ||
|  | 
 |