#!/bin/bash

set -eux

LIBS="lablgtk2 lablgtk-react lablwebkit"

INCLUDES_SYSTEM="$(ocamlfind query -i-format ${LIBS})"

BUILD="src/_build"
INCLUDES_LOCAL="-I ${BUILD}"
INCLUDES_LIB="-I ${BUILD}/lib"
INCLUDES_MODEL="-I ${BUILD}/browser/model"
INCLUDES_LIB_UI="-I ${BUILD}/lib_ui"
INCLUDES_UI="-I ${BUILD}/browser/ui"
INCLUDES_CARAVEL="-I ${BUILD}/browser"

FILES_LIB="
src/lib/options.ml
src/lib/stringP.ml
src/lib/misc.ml
src/lib/zipper.ml"

FILES_MODEL="
src/browser/model/optionsTypes.ml
src/browser/model/optionsDescr.ml
src/browser/model/options.ml
src/browser/model/pageTypes.ml
src/browser/model/page.ml
src/browser/model/navigationTypes.ml
src/browser/model/navigation.ml"

FILES_LIB_UI="
src/lib_ui/label.ml
src/lib_ui/notebook.ml
src/lib_ui/shortcuts.ml"

FILES_UI="
src/browser/ui/page.ml
src/browser/ui/navigation.ml
src/browser/ui/optionsWindow.ml
src/browser/ui/browser.ml"

FILES_CARAVEL="
src/browser/caravel.ml"

OUG="/home/adrien/t/oug-snapshot/oug.x ${INCLUDES_SYSTEM} ${INCLUDES_LOCAL}"

KIND="--dot"

${OUG} ${INCLUDES_LIB} ${KIND} dot/lib.dot ${FILES_LIB}
${OUG} ${INCLUDES_MODEL} ${KIND} dot/model.dot ${FILES_MODEL}
${OUG} ${INCLUDES_LIB_UI} ${KIND} dot/lib_ui.dot ${FILES_LIB_UI}
${OUG} ${INCLUDES_UI} ${KIND} dot/ui.dot ${FILES_UI}
${OUG} ${INCLUDES_CARAVEL} ${KIND} dot/caravel.dot ${FILES_CARAVEL}

for file in dot/*.dot; do
  module=${file%.dot}
  neato -Goverlap=false -Tpng ${file} > ${module}_neato.png
  dot -Goverlap=false -Tpng ${file} > ${module}_dot.png
  # sfdp -Goverlap=false -Tpng ${file} > ${module}_sfdp.png
done

