LDoc: add script to build versioned docs
This commit is contained in:
parent
f0004e3c7b
commit
6b3220048b
98
.ldoc/build_versioned_docs.sh
Executable file
98
.ldoc/build_versioned_docs.sh
Executable file
@ -0,0 +1,98 @@
|
|||||||
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# place this file in mod ".ldoc" directory
|
||||||
|
|
||||||
|
|
||||||
|
d_config="$(dirname $(readlink -f $0))"
|
||||||
|
|
||||||
|
cd "${d_config}/.."
|
||||||
|
|
||||||
|
d_root="$(pwd)"
|
||||||
|
d_export="${d_export:-${d_root}/docs/reference}"
|
||||||
|
|
||||||
|
cmd_ldoc="${d_root}/../ldoc/ldoc.lua"
|
||||||
|
if test -f "${cmd_ldoc}"; then
|
||||||
|
if test ! -x "${cmd_ldoc}"; then
|
||||||
|
chmod +x "${cmd_ldoc}"
|
||||||
|
fi
|
||||||
|
else
|
||||||
|
cmd_ldoc="ldoc"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# clean old files
|
||||||
|
rm -rf "${d_export}"
|
||||||
|
|
||||||
|
# store current branch
|
||||||
|
main_branch="$(git branch --show-current)"
|
||||||
|
|
||||||
|
html_out="<html>\n<head></head>\n\n<body>\n\n<ul>\n"
|
||||||
|
|
||||||
|
# generate new doc files
|
||||||
|
mkdir -p "${d_export}"
|
||||||
|
for vinfo in $(git tag -l --sort=-v:refname | grep "^v[0-9]"); do
|
||||||
|
echo -e "\nbuilding ${vinfo} docs ..."
|
||||||
|
git checkout ${vinfo}
|
||||||
|
d_temp="${d_config}/temp"
|
||||||
|
mkdir -p "${d_temp}"
|
||||||
|
|
||||||
|
# backward compat
|
||||||
|
f_config="${d_root}/docs/config.ld"
|
||||||
|
if test ! -f "${f_config}"; then
|
||||||
|
f_config="${d_config}/config.ld"
|
||||||
|
fi
|
||||||
|
|
||||||
|
if test ! -f "${f_config}"; then
|
||||||
|
echo -e "\nLDoc config not available for ${vinfo}, skipping build ..."
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
"${cmd_ldoc}" --UNSAFE_NO_SANDBOX --multimodule -c "${f_config}" -d "${d_temp}" "${d_root}"; retval=$?
|
||||||
|
if test ${retval} -ne 0; then
|
||||||
|
echo -e "\nERROR: doc build for ${vinfo} failed!"
|
||||||
|
rm -rf "${d_temp}"
|
||||||
|
continue
|
||||||
|
fi
|
||||||
|
|
||||||
|
# show version info
|
||||||
|
for html in $(find "${d_temp}" -type f -name "*.html"); do
|
||||||
|
sed -i -e "s|^<h1>[cC]leaner</h1>$|<h1>Cleaner <span style=\"font-size:12pt;\">(${vinfo})</span></h1>|" \
|
||||||
|
"${html}"
|
||||||
|
done
|
||||||
|
|
||||||
|
if test -d "${d_root}/textures"; then
|
||||||
|
# copy textures to data directory
|
||||||
|
echo -e "\ncopying textures ..."
|
||||||
|
d_data="${d_temp}/data"
|
||||||
|
mkdir -p "${d_data}"
|
||||||
|
texture_count=0
|
||||||
|
for png in $(find "${d_root}/textures" -maxdepth 1 -type f -name "*.png"); do
|
||||||
|
t_png="${d_data}/$(basename ${png})"
|
||||||
|
if test -f "${t_png}"; then
|
||||||
|
echo "WARNING: not overwriting existing file: ${t_png}"
|
||||||
|
else
|
||||||
|
cp "${png}" "${d_data}"
|
||||||
|
texture_count=$((texture_count + 1))
|
||||||
|
printf "\rcopied ${texture_count} textures"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
fi
|
||||||
|
|
||||||
|
mv "${d_temp}" "${d_export}/${vinfo}"
|
||||||
|
if test -z ${vcur+x}; then
|
||||||
|
vcur="${vinfo}"
|
||||||
|
ln -s "${d_export}/${vinfo}" "${d_export}/current"
|
||||||
|
ln -s "${d_export}/${vinfo}" "${d_export}/latest"
|
||||||
|
html_out="${html_out} <li><a href=\"current/\">current</a></li>\n"
|
||||||
|
html_out="${html_out} <li><a href=\"latest/\">latest</a></li>\n"
|
||||||
|
fi
|
||||||
|
html_out="${html_out} <li><a href=\"${vinfo}/\">${vinfo}</a></li>\n"
|
||||||
|
done
|
||||||
|
|
||||||
|
html_out="${html_out}</ul>\n\n</body></html>"
|
||||||
|
|
||||||
|
cd "${d_root}"
|
||||||
|
git checkout ${main_branch}
|
||||||
|
|
||||||
|
echo -e "${html_out}" > "${d_export}/index.html"
|
||||||
|
|
||||||
|
echo -e "\nDone!"
|
Loading…
x
Reference in New Issue
Block a user