From e938c04e3021d9cc756351e51c211ee6bd696317 Mon Sep 17 00:00:00 2001 From: uramer Date: Thu, 26 Jan 2023 23:31:27 +0100 Subject: [PATCH] Generate Teal declarations from luadoc --- docs/build_teal.sh | 36 ++++++++++++++++++++++++++++++++ docs/source/generate_luadoc.sh | 13 ++++++------ docs/source/luadoc_data_paths.sh | 9 ++++++++ docs/tlconfig.lua | 6 ++++++ 4 files changed, 57 insertions(+), 7 deletions(-) create mode 100644 docs/build_teal.sh create mode 100644 docs/source/luadoc_data_paths.sh create mode 100644 docs/tlconfig.lua diff --git a/docs/build_teal.sh b/docs/build_teal.sh new file mode 100644 index 0000000000..dac453a4a4 --- /dev/null +++ b/docs/build_teal.sh @@ -0,0 +1,36 @@ +DOCS_DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" &> /dev/null && pwd )" +FILES_DIR=$(realpath $DOCS_DIR/../files) +OUTPUT_DIR=$(realpath $DOCS_DIR/$1) +DOCUMENTOR_PATH=~/.luarocks/bin/openmwluadocumentor +TEAL_PATH=~/.luarocks/bin/tl + +rm -rf $OUTPUT_DIR +mkdir $OUTPUT_DIR +cp "$DOCS_DIR/tlconfig.lua" "$OUTPUT_DIR/tlconfig.lua" + +build_path() { + for file in $1 + do + mkdir -p $OUTPUT_DIR/$(dirname $file) + $DOCUMENTOR_PATH -f teal -d "$OUTPUT_DIR" $file + done +} + +cd $FILES_DIR +build_path lua_api/openmw/*lua + +data_paths=$($DOCS_DIR/source/luadoc_data_paths.sh) +for path in $data_paths +do + build_path data/$path +done + +cd $OUTPUT_DIR + +mv lua_api/openmw ./ +rm -r lua_api + +mv data/* ./ +rm -r data + +"$TEAL_PATH" check **/*.d.tl diff --git a/docs/source/generate_luadoc.sh b/docs/source/generate_luadoc.sh index fc3d6dc999..7c8815e808 100755 --- a/docs/source/generate_luadoc.sh +++ b/docs/source/generate_luadoc.sh @@ -20,13 +20,12 @@ fi rm -f $OUTPUT_DIR/*.html +data_paths=$($DOCS_SOURCE_DIR/luadoc_data_paths.sh) + cd $FILES_DIR/lua_api $DOCUMENTOR_PATH -f doc -d $OUTPUT_DIR openmw/*lua - cd $FILES_DIR/data -$DOCUMENTOR_PATH -f doc -d $OUTPUT_DIR openmw_aux/*lua -$DOCUMENTOR_PATH -f doc -d $OUTPUT_DIR scripts/omw/ai.lua -$DOCUMENTOR_PATH -f doc -d $OUTPUT_DIR scripts/omw/playercontrols.lua -$DOCUMENTOR_PATH -f doc -d $OUTPUT_DIR scripts/omw/camera/camera.lua -$DOCUMENTOR_PATH -f doc -d $OUTPUT_DIR scripts/omw/mwui/init.lua -$DOCUMENTOR_PATH -f doc -d $OUTPUT_DIR scripts/omw/settings/player.lua +for path in $data_paths +do + $DOCUMENTOR_PATH -f doc -d $OUTPUT_DIR $path +done diff --git a/docs/source/luadoc_data_paths.sh b/docs/source/luadoc_data_paths.sh new file mode 100644 index 0000000000..792e957c11 --- /dev/null +++ b/docs/source/luadoc_data_paths.sh @@ -0,0 +1,9 @@ +paths=( + openmw_aux/*lua + scripts/omw/ai.lua + scripts/omw/playercontrols.lua + scripts/omw/camera/camera.lua + scripts/omw/mwui/init.lua + scripts/omw/settings/player.lua +) +printf '%s\n' "${paths[@]}" \ No newline at end of file diff --git a/docs/tlconfig.lua b/docs/tlconfig.lua new file mode 100644 index 0000000000..f3e3a0d3a6 --- /dev/null +++ b/docs/tlconfig.lua @@ -0,0 +1,6 @@ +-- used for checking generated declarations +return { + gen_target = '5.1', + gen_compat = 'off', + include_dir = { '.', }, +}