rockbox/utils/rockbox_api/update.php
Maurus Cuelenaere 20fb47ec77 Commit FS#9462: an semi-automatic plugin API documentation generator
git-svn-id: svn://svn.rockbox.org/rockbox/trunk@18722 a1c6a512-1295-4272-9138-f99709370657
2008-10-06 22:19:54 +00:00

119 lines
No EOL
2.7 KiB
PHP
Executable file

#!/usr/bin/php
<?
require_once("functions.php");
$input = file_get_contents($argv[1]);
$input = parse_documentation($input);
foreach($input as $rootname => $rootel)
{
foreach($rootel as $name => $el)
$input[$name] = $el;
unset($input[$rootname]);
}
$new = get_newest();
foreach($new as $name => $el)
{
unset($new[$name]);
$name = clean_func($el["func"]);
$new[$name] = array(
"group" => array($el["group"]),
"description" => array("")
);
if(strlen($el["cond"]) > 2)
$new[$name]["conditions"][0] = $el["cond"];
$args = get_args($el["func"]);
if(count($args) > 0)
{
foreach($args as $n => $arg)
{
$tmp = split_var($arg);
$args[$n] = $tmp[1];
}
$new[$name]["param"] = $args;
}
if(get_return($el["func"]) !== false)
$new[$name]["return"][0] = "";
}
$merged = array_merge($new, $input);
uksort($merged, "func_sort");
echo '# Auto generated documentation by Rockbox plugin API generator v2'."\n";
echo '# Made by Maurus Cuelenaere'."\n";
echo <<<MOO
# __________ __ ___.
# Open \______ \ ____ ____ | | _\_ |__ _______ ___
# Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ /
# Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < <
# Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \
# \/ \/ \/ \/ \/
# \$Id$
#
# Generated from $svn\x61pps/plugin.h
#
# Format:
# \\group memory and strings
# \\conditions defined(HAVE_BACKLIGHT)
# \\param fmt
# \\return
# \\description
# \\see func1 func2 [S[apps/plugin.c]]
#
# Markup:
# [W[wiki url]]
# [S[svn url]]
# [F[function]]
# [[url]]
# %BR%
# =code=
MOO;
foreach($merged as $func => $line)
{
echo "\n".clean_func($func)."\n";
if(strlen($line["group"]) > 0)
echo " \\group ".trim($line["group"][0])."\n";
if(strlen($line["conditions"]) > 2)
echo " \\conditions ".trim(_simplify($line["conditions"][0]))."\n";
if(isset($line["param"]))
{
foreach($line["param"] as $param)
{
if($param != "...")
echo " \\param ".trim($param)."\n";
}
}
if(isset($line["return"]))
{
if(trim($line["return"]) == "")
echo " \\return\n";
else
echo " \\return ".trim($line["return"][0])."\n";
}
if(trim($line["description"]) == "")
echo " \\description\n";
else
echo " \\description ".trim($line["description"][0])."\n";
if(isset($line["see"]))
echo " \\see ".trim($line["see"][0])."\n";
}
echo "\n# END\n";
?>