discord-bot/libs/DPP-10.0.29/docpages/makedocs.php

95 lines
3.6 KiB
PHP
Raw Normal View History

2024-02-22 16:09:56 -05:00
<?php
/* Sanity checks */
if (!file_exists(getenv("HOME") . "/dpp-web")) {
echo "\n*** YOU PROBABLY SHOULDN'T BE RUNNING THIS!!! ***\n\n";
echo "\nClone https://github.com/brainboxdotcc/dpp-web.git to " . getenv("HOME") . "/dpp-web before running this script.\n";
echo "\nIMPORTANT: This script is for documentation maintainers to auto update the website. You do NOT need to run this script\nto generate offline documentation. Instead, just run `doxygen` from the repository root.\n\n";
exit(0);
}
/* Make drop down list of versions from the tags */
echo "Make version drop down select\n";
system("git fetch -av --tags");
$tags = explode("\n", shell_exec("git tag"));
for ($n = 0; $n < count($tags); ++$n) {
$tags[$n] = preg_replace('/^v/', '', $tags[$n]);
}
natsort($tags);
$tags = array_reverse($tags);
$opts = "<option value='/'>master</option>";
foreach ($tags as $tag) {
if ($tag != '') {
$opts .= "<option value='/$tag/'>$tag</option>";
}
}
$taglist = '';
foreach ($tags as $tag) {
if ($tag != '') {
$tag2 = str_replace("v", "", $tag);
$taglist .= "<a href='/".$tag2."/'>D++ Library version $tag</a>";
}
}
$template = file_get_contents("header.template.html");
$header = str_replace("##VERSION_OPTIONS##", $opts, $template);
$footer = file_get_contents("footer.template.html");
$footer = str_replace("###PREV###", $taglist, $footer);
file_put_contents("header.html", $header);
file_put_contents("footer.html", $footer);
echo "Generate `master` docs\n";
chdir("..");
shell_exec("/usr/local/bin/doxygen");
system("cp -r docs/* " . getenv("HOME") . "/dpp-web/");
/* Create old version docs */
chdir(getenv("HOME") . "/D++");
system("rm -rf " . sys_get_temp_dir() . "/dpp-old");
mkdir(sys_get_temp_dir() . "/dpp-old");
chdir(sys_get_temp_dir() . "/dpp-old");
foreach ($tags as $tag) {
$orig_tag = $tag;
$tag = preg_replace("/^v/", "", $tag);
if (!empty($tag)) {
print "Generate $orig_tag docs (https://dpp.dev/$tag/)\n";
system("git clone --recursive https://github.com/brainboxdotcc/DPP.git");
chdir("DPP");
system("git checkout tags/$orig_tag");
/* Older versions of the docs before 9.0.7 don't have these. Force them into the tree so old versions get current styling */
system("cp -rv " . getenv("HOME") . "/D++/docpages/images docpages");
system("cp -rv " . getenv("HOME") . "/D++/docpages/style.css docpages/style.css");
system("cp -rv " . getenv("HOME") . "/D++/docpages/*.html docpages/");
system("cp -rv " . getenv("HOME") . "/D++/doxygen-awesome-css doxygen-awesome-css");
/* Always make sure that the version is using the latest doxygen,
* but rewrite version number (project number)
*/
$doxy = file_get_contents(getenv("HOME") . "/D++/Doxyfile");
$doxy = str_replace("PROJECT_NUMBER =", "PROJECT_NUMBER = $tag", $doxy);
file_put_contents("Doxyfile", $doxy);
/* Rewrite selected version number so that each page has a new default selected in the drop down */
$hdr = file_get_contents(getenv("HOME") . "/D++/docpages/header.html");
$hdr = str_replace("option value='/$tag/'", "option selected value='/$tag/'", $hdr);
/* Rewrite version info in header */
file_put_contents("docpages/header.html", $hdr);
shell_exec("/usr/local/bin/doxygen");
mkdir(getenv("HOME") . "/dpp-web/$tag");
system("cp -r docs/* " . getenv("HOME") . "/dpp-web/$tag");
chdir("..");
system("rm -rf " . sys_get_temp_dir() . "/dpp-old/DPP");
}
}
/* Commit and push everything to the github pages repo */
echo "Commit and push\n";
chdir(getenv("HOME") . "/dpp-web");
system("git add -A");
system("git commit -a -m \"automatic commit\"");
system("git push");