docgen: add a simple script that does doc generation in parallel
authorDaniel Kolesa <d.kolesa@osg.samsung.com>
Fri, 3 Mar 2017 16:43:19 +0000 (17:43 +0100)
committerDaniel Kolesa <d.kolesa@osg.samsung.com>
Fri, 3 Mar 2017 16:46:40 +0000 (17:46 +0100)
src/Makefile_Elua.am
src/scripts/elua/apps/gendoc.sh [new file with mode: 0755]

index d743e6c..bd1da51 100644 (file)
@@ -59,6 +59,7 @@ eluaappsdir = $(datadir)/elua/apps
 eluaapps_DATA = \
        scripts/elua/apps/lualian.lua \
        scripts/elua/apps/gendoc.lua \
+       scripts/elua/apps/gendoc.sh \
        scripts/elua/apps/README-docgen.md
 
 EXTRA_DIST2 += $(eluaapps_DATA)
diff --git a/src/scripts/elua/apps/gendoc.sh b/src/scripts/elua/apps/gendoc.sh
new file mode 100755 (executable)
index 0000000..780652b
--- /dev/null
@@ -0,0 +1,40 @@
+#!/bin/sh
+# a parallel doc generation script
+
+# exit on failure
+set -e
+
+gendoc() {
+    elua gendoc.lua --pass $@
+}
+
+gendoc rm $@
+gendoc ref $@
+
+# limit jobs otherwise stuff starts complaining in eldbus etc
+MAXJ=192
+
+I=0
+for cl in $(gendoc clist $@); do
+    gendoc "$cl" $@ &
+    I=$(($I + 1))
+    if [ $I -gt $MAXJ ]; then
+        I=0
+        # wait for the batch to finish
+        wait
+    fi
+done
+
+# wait for all remaining stuff to finish
+wait
+
+gendoc types $@ &
+gendoc vars $@ &
+
+# types and vars run in parallel
+wait
+
+# final results
+gendoc stats $@
+
+exit 0