From a6b0d41fcc3b0550c7abb90061adb36a457c1f0e Mon Sep 17 00:00:00 2001 From: EsGeh Date: Tue, 12 Nov 2019 16:50:15 +0100 Subject: [PATCH] (!untested!) add Dockerfile, docker-compose, scripts. change dir struct. --- .gitignore | 3 +- Dockerfile | 24 ++++ docker-compose.yaml | 20 ++++ scripts/config/env.conf | 25 +++++ scripts/config/load_env.fish | 26 +++++ scripts/config/load_env.sh | 25 +++++ scripts/exec_in_container.py | 32 ++++++ scripts/exit.py | 58 ++++++++++ scripts/init.py | 103 ++++++++++++++++++ scripts/run.py | 37 +++++++ scripts/stop.py | 28 +++++ scripts/utils/functions.py | 42 +++++++ scripts/utils/settings.py | 97 +++++++++++++++++ bib_add_keyword.py => src/bib_add_keyword.py | 0 {bibformat => src/bibformat}/4ht/auto/fo.el | 0 .../bibformat}/4ht/bibliography4ht.tex | 0 {bibformat => src/bibformat}/4ht/eoa.cfg | 0 {bibformat => src/bibformat}/4ht/fo.bib | 0 {bibformat => src/bibformat}/4ht/htform.py | 0 {bibformat => src/bibformat}/4ht/older/fo.4ct | 0 {bibformat => src/bibformat}/4ht/older/fo.4tc | 0 {bibformat => src/bibformat}/4ht/older/fo.aux | 0 {bibformat => src/bibformat}/4ht/older/fo.bbl | 0 {bibformat => src/bibformat}/4ht/older/fo.bcf | 0 {bibformat => src/bibformat}/4ht/older/fo.css | 0 {bibformat => src/bibformat}/4ht/older/fo.dvi | Bin {bibformat => src/bibformat}/4ht/older/fo.ent | 0 .../bibformat}/4ht/older/fo.html | 0 {bibformat => src/bibformat}/4ht/older/fo.idv | Bin {bibformat => src/bibformat}/4ht/older/fo.lg | 0 {bibformat => src/bibformat}/4ht/older/fo.odt | Bin .../bibformat}/4ht/older/fo.run.xml | 0 {bibformat => src/bibformat}/4ht/older/fo.tex | 0 {bibformat => src/bibformat}/4ht/older/fo.tmp | 0 {bibformat => src/bibformat}/4ht/older/fo.xml | 0 .../bibformat}/4ht/older/fo.xref | 0 .../bibformat}/4ht/older/folbl.tex | 0 .../bibformat}/4ht/older/sam.tex | 0 {bibformat => src/bibformat}/4ht/tmp.html | 0 .../bibformat}/4ht/tmp_files/test.4ct | 0 .../bibformat}/4ht/tmp_files/test.4tc | 0 .../bibformat}/4ht/tmp_files/test.aux | 0 .../bibformat}/4ht/tmp_files/test.bbl | 0 .../bibformat}/4ht/tmp_files/test.bcf | 0 .../bibformat}/4ht/tmp_files/test.blg | 0 .../bibformat}/4ht/tmp_files/test.css | 0 .../bibformat}/4ht/tmp_files/test.dvi | Bin .../bibformat}/4ht/tmp_files/test.html | 0 .../bibformat}/4ht/tmp_files/test.idv | Bin .../bibformat}/4ht/tmp_files/test.lg | 0 .../bibformat}/4ht/tmp_files/test.run.xml | 0 .../bibformat}/4ht/tmp_files/test.tex | 0 .../bibformat}/4ht/tmp_files/test.tmp | 0 .../bibformat}/4ht/tmp_files/test.xref | 0 .../bibformat}/chicago-author-date-custom.csl | 0 .../config}/disabled_tralics_conf/amsmath.plt | 0 {config => src/config}/eoaconvert.cfg | 0 {config => src/config}/tralics.tcf | 0 .../config}/tralics_conf/amsbsy.plt | 0 {config => src/config}/tralics_conf/amscd.plt | 0 .../config}/tralics_conf/amsfonts.plt | 0 .../config}/tralics_conf/amsgen.plt | 0 .../config}/tralics_conf/amsopn.plt | 0 .../config}/tralics_conf/amssymb.plt | 0 .../config}/tralics_conf/amstext.plt | 0 .../config}/tralics_conf/amsthm.plt | 0 .../config}/tralics_conf/amsxtra.plt | 0 .../config}/tralics_conf/cgloss4e.plt | 0 {config => src/config}/tralics_conf/etex.plt | 0 .../config}/tralics_conf/fancyvrb.plt | 0 {config => src/config}/tralics_conf/html.plt | 0 .../config}/tralics_conf/inputenc.plt | 0 .../config}/tralics_conf/minimal.clt | 0 .../config}/tralics_conf/natbib.plt | 0 create_tmpbib.py => src/create_tmpbib.py | 0 {data => src/data}/aux/bibliography4ht.tex | 0 {data => src/data}/aux/formula.tex | 0 {data => src/data}/aux/largebib-xml.tex | 0 {data => src/data}/aux/largebib.tex | 0 {data => src/data}/aux/pre_bib.tex | 0 {data => src/data}/aux/translations.xml | 0 {data => src/data}/dtd_files/classes.dtd | 0 {data => src/data}/dtd_files/html/lat1.ent | 0 {data => src/data}/dtd_files/html/special.ent | 0 {data => src/data}/dtd_files/html/symbol.ent | 0 .../data}/dtd_files/iso8879/isoamsa.ent | 0 .../data}/dtd_files/iso8879/isoamsb.ent | 0 .../data}/dtd_files/iso8879/isoamsc.ent | 0 .../data}/dtd_files/iso8879/isoamsn.ent | 0 .../data}/dtd_files/iso8879/isoamso.ent | 0 .../data}/dtd_files/iso8879/isoamsr.ent | 0 .../data}/dtd_files/iso8879/isobox.ent | 0 .../data}/dtd_files/iso8879/isocyr1.ent | 0 .../data}/dtd_files/iso8879/isocyr2.ent | 0 .../data}/dtd_files/iso8879/isodia.ent | 0 .../data}/dtd_files/iso8879/isogrk1.ent | 0 .../data}/dtd_files/iso8879/isogrk2.ent | 0 .../data}/dtd_files/iso8879/isogrk3.ent | 0 .../data}/dtd_files/iso8879/isogrk4.ent | 0 .../data}/dtd_files/iso8879/isolat1.ent | 0 .../data}/dtd_files/iso8879/isolat2.ent | 0 .../data}/dtd_files/iso8879/isonum.ent | 0 .../data}/dtd_files/iso8879/isopub.ent | 0 .../data}/dtd_files/iso8879/isotech.ent | 0 .../data}/dtd_files/iso9573-13/isoamsa.ent | 0 .../data}/dtd_files/iso9573-13/isoamsb.ent | 0 .../data}/dtd_files/iso9573-13/isoamsc.ent | 0 .../data}/dtd_files/iso9573-13/isoamsn.ent | 0 .../data}/dtd_files/iso9573-13/isoamso.ent | 0 .../data}/dtd_files/iso9573-13/isoamsr.ent | 0 .../data}/dtd_files/iso9573-13/isogrk3.ent | 0 .../data}/dtd_files/iso9573-13/isogrk4.ent | 0 .../data}/dtd_files/iso9573-13/isomfrk.ent | 0 .../data}/dtd_files/iso9573-13/isomopf.ent | 0 .../data}/dtd_files/iso9573-13/isomscr.ent | 0 .../data}/dtd_files/iso9573-13/isotech.ent | 0 .../data}/dtd_files/mathml/mmlalias.ent | 0 .../data}/dtd_files/mathml/mmlextra.ent | 0 .../data}/dtd_files/mathml2-qname-1.mod | 0 {data => src/data}/dtd_files/mathml2.dtd | 0 {data => src/data}/epub_files/GPL.txt | 0 {data => src/data}/epub_files/LICENCE.txt | 0 .../data}/epub_files/LinLibertine_R.otf | Bin .../data}/epub_files/LinLibertine_RI.otf | Bin .../data}/epub_files/LinLibertine_RZ.otf | Bin .../data}/epub_files/LinLibertine_RZI.otf | Bin {data => src/data}/epub_files/OFL-1.1.txt | 0 .../data}/epub_files/eoa-epub-libertine.css | 0 .../data}/epub_files/eoa-epub-termes.css | 0 {data => src/data}/epub_files/epubchapter.xml | 0 .../data}/epub_files/epubcontainer.xml | 0 .../data}/epub_files/epubcontentopf.xml | 0 {data => src/data}/epub_files/epubcover.xhtml | 0 .../data}/epub_files/epubintro-sources.xhtml | 0 {data => src/data}/epub_files/epubintro.xhtml | 0 .../data}/epub_files/epubintro_de.xhtml | 0 {data => src/data}/epub_files/epubmimetype | 0 {data => src/data}/epub_files/epubtocncx.xml | 0 .../data}/epub_files/texgyretermes-bold.otf | Bin .../epub_files/texgyretermes-bolditalic.otf | Bin .../data}/epub_files/texgyretermes-italic.otf | Bin .../epub_files/texgyretermes-regular.otf | Bin {data => src/data}/misc/echoparser.py | 0 {data => src/data}/misc/epub.sh | 0 {data => src/data}/misc/epub_test.sh | 0 {data => src/data}/tei_boilerplate.cfg | 0 eoatex2imxml.py => src/eoatex2imxml.py | 0 eoatex2pdf.py => src/eoatex2pdf.py | 0 find_chapters.py => src/find_chapters.py | 0 fix_tei.py => src/fix_tei.py | 0 .../gather_pickledata.py | 0 idassigner.py => src/idassigner.py | 0 imxml2django.py => src/imxml2django.py | 0 imxml2epub.py => src/imxml2epub.py | 0 imxml2tei.py => src/imxml2tei.py | 0 mkimage.py => src/mkimage.py | 0 parsezotero.py => src/parsezotero.py | 0 tei2eoatex.xsl => src/tei2eoatex.xsl | 0 tei2html.py => src/tei2html.py | 0 {tei2html => src/tei2html}/tei2html.xsl | 0 .../tei2html}/tei2html_chapter.xsl | 0 .../tei2html}/tei2html_chapter_utils.xsl | 0 .../tei2html}/tei2html_publ_frontpage.xsl | 0 .../tei2html_publ_frontpage_utils.xsl | 0 {tei2html => src/tei2html}/utils/common.xsl | 0 .../tei2html}/utils/html_rules.xsl | 0 {tei2html => src/tei2html}/utils/print.xsl | 0 tei2imxml.py => src/tei2imxml.py | 0 {utils => src/utils}/bib2html.py | 0 {utils => src/utils}/libeoabibitem.py | 0 {utils => src/utils}/libeoaconvert.py | 0 {utils => src/utils}/load_config.py | 0 172 files changed, 519 insertions(+), 1 deletion(-) create mode 100644 Dockerfile create mode 100644 docker-compose.yaml create mode 100644 scripts/config/env.conf create mode 100755 scripts/config/load_env.fish create mode 100755 scripts/config/load_env.sh create mode 100755 scripts/exec_in_container.py create mode 100755 scripts/exit.py create mode 100755 scripts/init.py create mode 100755 scripts/run.py create mode 100755 scripts/stop.py create mode 100644 scripts/utils/functions.py create mode 100644 scripts/utils/settings.py rename bib_add_keyword.py => src/bib_add_keyword.py (100%) rename {bibformat => src/bibformat}/4ht/auto/fo.el (100%) rename {bibformat => src/bibformat}/4ht/bibliography4ht.tex (100%) rename {bibformat => src/bibformat}/4ht/eoa.cfg (100%) rename {bibformat => src/bibformat}/4ht/fo.bib (100%) rename {bibformat => src/bibformat}/4ht/htform.py (100%) rename {bibformat => src/bibformat}/4ht/older/fo.4ct (100%) rename {bibformat => src/bibformat}/4ht/older/fo.4tc (100%) rename {bibformat => src/bibformat}/4ht/older/fo.aux (100%) rename {bibformat => src/bibformat}/4ht/older/fo.bbl (100%) rename {bibformat => src/bibformat}/4ht/older/fo.bcf (100%) rename {bibformat => src/bibformat}/4ht/older/fo.css (100%) rename {bibformat => src/bibformat}/4ht/older/fo.dvi (100%) rename {bibformat => src/bibformat}/4ht/older/fo.ent (100%) rename {bibformat => src/bibformat}/4ht/older/fo.html (100%) rename {bibformat => src/bibformat}/4ht/older/fo.idv (100%) rename {bibformat => src/bibformat}/4ht/older/fo.lg (100%) rename {bibformat => src/bibformat}/4ht/older/fo.odt (100%) rename {bibformat => src/bibformat}/4ht/older/fo.run.xml (100%) rename {bibformat => src/bibformat}/4ht/older/fo.tex (100%) rename {bibformat => src/bibformat}/4ht/older/fo.tmp (100%) rename {bibformat => src/bibformat}/4ht/older/fo.xml (100%) rename {bibformat => src/bibformat}/4ht/older/fo.xref (100%) rename {bibformat => src/bibformat}/4ht/older/folbl.tex (100%) rename {bibformat => src/bibformat}/4ht/older/sam.tex (100%) rename {bibformat => src/bibformat}/4ht/tmp.html (100%) rename {bibformat => src/bibformat}/4ht/tmp_files/test.4ct (100%) rename {bibformat => src/bibformat}/4ht/tmp_files/test.4tc (100%) rename {bibformat => src/bibformat}/4ht/tmp_files/test.aux (100%) rename {bibformat => src/bibformat}/4ht/tmp_files/test.bbl (100%) rename {bibformat => src/bibformat}/4ht/tmp_files/test.bcf (100%) rename {bibformat => src/bibformat}/4ht/tmp_files/test.blg (100%) rename {bibformat => src/bibformat}/4ht/tmp_files/test.css (100%) rename {bibformat => src/bibformat}/4ht/tmp_files/test.dvi (100%) rename {bibformat => src/bibformat}/4ht/tmp_files/test.html (100%) rename {bibformat => src/bibformat}/4ht/tmp_files/test.idv (100%) rename {bibformat => src/bibformat}/4ht/tmp_files/test.lg (100%) rename {bibformat => src/bibformat}/4ht/tmp_files/test.run.xml (100%) rename {bibformat => src/bibformat}/4ht/tmp_files/test.tex (100%) rename {bibformat => src/bibformat}/4ht/tmp_files/test.tmp (100%) rename {bibformat => src/bibformat}/4ht/tmp_files/test.xref (100%) rename {bibformat => src/bibformat}/chicago-author-date-custom.csl (100%) rename {config => src/config}/disabled_tralics_conf/amsmath.plt (100%) rename {config => src/config}/eoaconvert.cfg (100%) rename {config => src/config}/tralics.tcf (100%) rename {config => src/config}/tralics_conf/amsbsy.plt (100%) rename {config => src/config}/tralics_conf/amscd.plt (100%) rename {config => src/config}/tralics_conf/amsfonts.plt (100%) rename {config => src/config}/tralics_conf/amsgen.plt (100%) rename {config => src/config}/tralics_conf/amsopn.plt (100%) rename {config => src/config}/tralics_conf/amssymb.plt (100%) rename {config => src/config}/tralics_conf/amstext.plt (100%) rename {config => src/config}/tralics_conf/amsthm.plt (100%) rename {config => src/config}/tralics_conf/amsxtra.plt (100%) rename {config => src/config}/tralics_conf/cgloss4e.plt (100%) rename {config => src/config}/tralics_conf/etex.plt (100%) rename {config => src/config}/tralics_conf/fancyvrb.plt (100%) rename {config => src/config}/tralics_conf/html.plt (100%) rename {config => src/config}/tralics_conf/inputenc.plt (100%) rename {config => src/config}/tralics_conf/minimal.clt (100%) rename {config => src/config}/tralics_conf/natbib.plt (100%) rename create_tmpbib.py => src/create_tmpbib.py (100%) rename {data => src/data}/aux/bibliography4ht.tex (100%) rename {data => src/data}/aux/formula.tex (100%) rename {data => src/data}/aux/largebib-xml.tex (100%) rename {data => src/data}/aux/largebib.tex (100%) rename {data => src/data}/aux/pre_bib.tex (100%) rename {data => src/data}/aux/translations.xml (100%) rename {data => src/data}/dtd_files/classes.dtd (100%) rename {data => src/data}/dtd_files/html/lat1.ent (100%) rename {data => src/data}/dtd_files/html/special.ent (100%) rename {data => src/data}/dtd_files/html/symbol.ent (100%) rename {data => src/data}/dtd_files/iso8879/isoamsa.ent (100%) rename {data => src/data}/dtd_files/iso8879/isoamsb.ent (100%) rename {data => src/data}/dtd_files/iso8879/isoamsc.ent (100%) rename {data => src/data}/dtd_files/iso8879/isoamsn.ent (100%) rename {data => src/data}/dtd_files/iso8879/isoamso.ent (100%) rename {data => src/data}/dtd_files/iso8879/isoamsr.ent (100%) rename {data => src/data}/dtd_files/iso8879/isobox.ent (100%) rename {data => src/data}/dtd_files/iso8879/isocyr1.ent (100%) rename {data => src/data}/dtd_files/iso8879/isocyr2.ent (100%) rename {data => src/data}/dtd_files/iso8879/isodia.ent (100%) rename {data => src/data}/dtd_files/iso8879/isogrk1.ent (100%) rename {data => src/data}/dtd_files/iso8879/isogrk2.ent (100%) rename {data => src/data}/dtd_files/iso8879/isogrk3.ent (100%) rename {data => src/data}/dtd_files/iso8879/isogrk4.ent (100%) rename {data => src/data}/dtd_files/iso8879/isolat1.ent (100%) rename {data => src/data}/dtd_files/iso8879/isolat2.ent (100%) rename {data => src/data}/dtd_files/iso8879/isonum.ent (100%) rename {data => src/data}/dtd_files/iso8879/isopub.ent (100%) rename {data => src/data}/dtd_files/iso8879/isotech.ent (100%) rename {data => src/data}/dtd_files/iso9573-13/isoamsa.ent (100%) rename {data => src/data}/dtd_files/iso9573-13/isoamsb.ent (100%) rename {data => src/data}/dtd_files/iso9573-13/isoamsc.ent (100%) rename {data => src/data}/dtd_files/iso9573-13/isoamsn.ent (100%) rename {data => src/data}/dtd_files/iso9573-13/isoamso.ent (100%) rename {data => src/data}/dtd_files/iso9573-13/isoamsr.ent (100%) rename {data => src/data}/dtd_files/iso9573-13/isogrk3.ent (100%) rename {data => src/data}/dtd_files/iso9573-13/isogrk4.ent (100%) rename {data => src/data}/dtd_files/iso9573-13/isomfrk.ent (100%) rename {data => src/data}/dtd_files/iso9573-13/isomopf.ent (100%) rename {data => src/data}/dtd_files/iso9573-13/isomscr.ent (100%) rename {data => src/data}/dtd_files/iso9573-13/isotech.ent (100%) rename {data => src/data}/dtd_files/mathml/mmlalias.ent (100%) rename {data => src/data}/dtd_files/mathml/mmlextra.ent (100%) rename {data => src/data}/dtd_files/mathml2-qname-1.mod (100%) rename {data => src/data}/dtd_files/mathml2.dtd (100%) rename {data => src/data}/epub_files/GPL.txt (100%) rename {data => src/data}/epub_files/LICENCE.txt (100%) rename {data => src/data}/epub_files/LinLibertine_R.otf (100%) rename {data => src/data}/epub_files/LinLibertine_RI.otf (100%) rename {data => src/data}/epub_files/LinLibertine_RZ.otf (100%) rename {data => src/data}/epub_files/LinLibertine_RZI.otf (100%) rename {data => src/data}/epub_files/OFL-1.1.txt (100%) rename {data => src/data}/epub_files/eoa-epub-libertine.css (100%) rename {data => src/data}/epub_files/eoa-epub-termes.css (100%) rename {data => src/data}/epub_files/epubchapter.xml (100%) rename {data => src/data}/epub_files/epubcontainer.xml (100%) rename {data => src/data}/epub_files/epubcontentopf.xml (100%) rename {data => src/data}/epub_files/epubcover.xhtml (100%) rename {data => src/data}/epub_files/epubintro-sources.xhtml (100%) rename {data => src/data}/epub_files/epubintro.xhtml (100%) rename {data => src/data}/epub_files/epubintro_de.xhtml (100%) rename {data => src/data}/epub_files/epubmimetype (100%) rename {data => src/data}/epub_files/epubtocncx.xml (100%) rename {data => src/data}/epub_files/texgyretermes-bold.otf (100%) rename {data => src/data}/epub_files/texgyretermes-bolditalic.otf (100%) rename {data => src/data}/epub_files/texgyretermes-italic.otf (100%) rename {data => src/data}/epub_files/texgyretermes-regular.otf (100%) rename {data => src/data}/misc/echoparser.py (100%) rename {data => src/data}/misc/epub.sh (100%) rename {data => src/data}/misc/epub_test.sh (100%) rename {data => src/data}/tei_boilerplate.cfg (100%) rename eoatex2imxml.py => src/eoatex2imxml.py (100%) rename eoatex2pdf.py => src/eoatex2pdf.py (100%) rename find_chapters.py => src/find_chapters.py (100%) rename fix_tei.py => src/fix_tei.py (100%) rename gather_pickledata.py => src/gather_pickledata.py (100%) rename idassigner.py => src/idassigner.py (100%) rename imxml2django.py => src/imxml2django.py (100%) rename imxml2epub.py => src/imxml2epub.py (100%) rename imxml2tei.py => src/imxml2tei.py (100%) rename mkimage.py => src/mkimage.py (100%) rename parsezotero.py => src/parsezotero.py (100%) rename tei2eoatex.xsl => src/tei2eoatex.xsl (100%) rename tei2html.py => src/tei2html.py (100%) rename {tei2html => src/tei2html}/tei2html.xsl (100%) rename {tei2html => src/tei2html}/tei2html_chapter.xsl (100%) rename {tei2html => src/tei2html}/tei2html_chapter_utils.xsl (100%) rename {tei2html => src/tei2html}/tei2html_publ_frontpage.xsl (100%) rename {tei2html => src/tei2html}/tei2html_publ_frontpage_utils.xsl (100%) rename {tei2html => src/tei2html}/utils/common.xsl (100%) rename {tei2html => src/tei2html}/utils/html_rules.xsl (100%) rename {tei2html => src/tei2html}/utils/print.xsl (100%) rename tei2imxml.py => src/tei2imxml.py (100%) rename {utils => src/utils}/bib2html.py (100%) rename {utils => src/utils}/libeoabibitem.py (100%) rename {utils => src/utils}/libeoaconvert.py (100%) rename {utils => src/utils}/load_config.py (100%) diff --git a/.gitignore b/.gitignore index e9b30c8..405398f 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,5 @@ -output +/input/ +/output/ examples # Byte-compiled / optimized / DLL files diff --git a/Dockerfile b/Dockerfile new file mode 100644 index 0000000..e9145c2 --- /dev/null +++ b/Dockerfile @@ -0,0 +1,24 @@ +FROM python:3 + +ENV PYTHONUNBUFFERED 1 +ENV SHELL /bin/bash + +# ------------------------------------------ +# install necessary packages via apt-get: +# ------------------------------------------ +RUN apt-get update && \ + apt-get install -y --no-install-recommends \ + graphicsmagick \ + pandoc \ + pandoc-citeproc \ + curl \ + texlive-xetex + +# this is supposed to save memory: +RUN rm -rf /var/lib/apt/lists/* + +# ------------------------------------------ +# install python dependencies: +# ------------------------------------------ +COPY requirements.txt "$INSTALL_DIR/" +RUN pip install -r requirements.txt diff --git a/docker-compose.yaml b/docker-compose.yaml new file mode 100644 index 0000000..8b6ce47 --- /dev/null +++ b/docker-compose.yaml @@ -0,0 +1,20 @@ +version: '3.7' + +services: + + eoa_skripts: + build: . + image: ${IMAGE_NAME} + container_name: ${CONTAINER_NAME} + command: bash -c 'while :; do :; done & kill -STOP $$! && wait $$!' + volumes: + - ./${SRC_DIR}:${SRC_DIR_IN_CONTAINER} + - ./${INPUT_DIR}:${INPUT_DIR_IN_CONTAINER} + - ./${OUTPUT_DIR}:${OUTPUT_DIR_IN_CONTAINER} + working_dir: ${SRC_DIR_IN_CONTAINER} + environment: + - INPUT_DIR=${INPUT_DIR_IN_CONTAINER} + - OUTPUT_DIR=${OUTPUT_DIR_IN_CONTAINER} + - INSTALL_DIR=${SRC_DIR_IN_CONTAINER} + ports: [] + user: ${USER}:${GROUP} diff --git a/scripts/config/env.conf b/scripts/config/env.conf new file mode 100644 index 0000000..1e34dc6 --- /dev/null +++ b/scripts/config/env.conf @@ -0,0 +1,25 @@ +[config] + +################################################### +# container names: +################################################### + +IMAGE_NAME=eoa_skripts +CONTAINER_NAME=eoa_skripts + + +################################################### +# volumes: +################################################### + +SRC_DIR=src +SRC_DIR_IN_CONTAINER=/eoa/skripts +INPUT_DIR=input +INPUT_DIR_IN_CONTAINER=/eoa/input +OUTPUT_DIR=output +OUTPUT_DIR_IN_CONTAINER=/eoa/output + +################################################### +# user and group: +# USER=$(id -u) +# GROUP=$(id -g) diff --git a/scripts/config/load_env.fish b/scripts/config/load_env.fish new file mode 100755 index 0000000..6aa711b --- /dev/null +++ b/scripts/config/load_env.fish @@ -0,0 +1,26 @@ +#!/bin/fish + +if not set -q SCRIPT_DIR + echo "ERROR in (status -m): \$SCRIPT_DIR is undefined!" + exit 1 +end +set BASE_DIR "$SCRIPT_DIR/.." + +####################################### +# actual script +####################################### + +set RUNTIME_DIR "runtime_data" + +################################################### +# export all these variables, so +# they can be referenced in the docker-compose.yaml +################################################### + +# convert bash syntax to fish syntax: +set commands (cat ./scripts/config/env.conf | grep -E --invert-match '^#|^[[:space:]]*$' | sed 's/^\(.*\)=\(.*\)/set -x \1 \2/' | sed 's/\$(/(/g') + +for cmd in $commands + echo "cmd: $cmd" + eval "$cmd" +end diff --git a/scripts/config/load_env.sh b/scripts/config/load_env.sh new file mode 100755 index 0000000..d3b40b3 --- /dev/null +++ b/scripts/config/load_env.sh @@ -0,0 +1,25 @@ +#!/bin/bash + +if [[ "$SCRIPT_DIR" == "" ]]; then + echo "ERROR in ./scripts/config/load_env.sh: \$SCRIPT_DIR is undefined!" + exit 1 +fi +BASE_DIR="$SCRIPT_DIR/.." + +####################################### +# actual script +####################################### + + +# these are the default settings used by all scripts: + +RUNTIME_DIR=runtime_data + +################################################### +# export all these variables, so +# they can be referenced in the docker-compose.yaml +################################################### +set -a +source $SCRIPT_DIR/config/env.conf +set -a +# (stop exporting variables) diff --git a/scripts/exec_in_container.py b/scripts/exec_in_container.py new file mode 100755 index 0000000..6fe1480 --- /dev/null +++ b/scripts/exec_in_container.py @@ -0,0 +1,32 @@ +#!/usr/bin/env python3 + +from utils.settings import BASE_DIR, load_config +from utils.functions import exec_in_container + +from pathlib import Path +import os + +if __name__ == '__main__': + + from argparse import ArgumentParser + + config = load_config() + + parser = ArgumentParser( + description="open bash to the container, optionally exec CMD there" + ) + parser.add_argument( + "CMD", + nargs='*', + ) + args = parser.parse_args() + + CMDS= \ + (vars(args)['CMD']) + + print( CMDS ) + + exec_in_container( + *CMDS, + env=config + ) diff --git a/scripts/exit.py b/scripts/exit.py new file mode 100755 index 0000000..ac3d50c --- /dev/null +++ b/scripts/exit.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python3 + +from utils.settings import BASE_DIR, load_config + +from pathlib import Path +import shutil +import os + +def rm_dirs( config ): + path = Path( BASE_DIR, config['INPUT_DIR'] ) + print( "removing dir '{}'".format( path ) ) + shutil.rmtree( + path, + ignore_errors=True + ) + # os.system('rm -rf "{}"'.format( path )) + + path = Path( BASE_DIR, config['OUTPUT_DIR'] ) + print( "removing dir '{}'".format( path ) ) + shutil.rmtree( + path, + ignore_errors=True + ) + # os.system('rm -rf "{}"'.format( path )) + +def rm_docker_env_file( config ): + path = Path( + BASE_DIR / ".env" + ) + print( "removing '{}'".format( path ) ) + path.unlink() + +if __name__ == '__main__': + + from argparse import ArgumentParser + + config = load_config() + + parser = ArgumentParser( + description="clean up the repository" + ) + parser.add_argument( + "--env-file", + action = "store_true" + ) + parser.add_argument( + "--all", + action = "store_true" + ) + args = parser.parse_args() + + from stop import stop + + stop( config ) + + rm_dirs( config ) + if args.env_file or args.all: + rm_docker_env_file( config ) diff --git a/scripts/init.py b/scripts/init.py new file mode 100755 index 0000000..f2167e6 --- /dev/null +++ b/scripts/init.py @@ -0,0 +1,103 @@ +#!/usr/bin/env python3 + +from utils.settings import BASE_DIR, load_config, create_docker_env_file +from utils.functions import exec_in_container, run + +from pathlib import Path +import shlex +import shutil +import pwd +import os +import subprocess +from time import sleep + +BASE_DIR = Path( __file__ ).parent.parent +DEP_DIR = BASE_DIR / "dependencies" + + +SQLDB_WAIT_TIME=20 + +def create_dir(dir): + print( "creating dir '{}'".format( dir ) ) + Path(dir).mkdir( + parents = True, + exist_ok = True + ) + +def copy_dir(src, dst): + print( "'{}' -> '{}'".format( src, dst ) ) + if Path(dst).exists(): + shutil.rmtree( + dst + ) + shutil.copytree( + src=src, + dst=dst + ) + +def create_dirs( config ): + create_dir( + BASE_DIR / config['INPUT_DIR'] + ) + create_dir( + BASE_DIR / config['OUTPUT_DIR'] + ) + +def install_git_dep( + repo_name, + repo_uri, + repo_hash, + init_script = None +): + if (DEP_DIR / repo_name).exists(): + shutil.rmtree( DEP_DIR / repo_name ) + + subprocess.check_call( + ["git", "clone", repo_uri, DEP_DIR / repo_name] + ) + subprocess.check_call( + ["git", "checkout", repo_hash], + cwd = DEP_DIR / repo_name + ) + if init_script is not None: + subprocess.check_call( + shlex.split( init_script ), + cwd = DEP_DIR / repo_name + ) + +if __name__ == '__main__': + + from argparse import ArgumentParser + + parser = ArgumentParser( + description="initialize the repository: download git deps, create directories, etc" + ) + parser.add_argument( + "--build", + action = "store_true" + ) + args = parser.parse_args() + + # orig_config_file -> env_file: + create_docker_env_file() + + # load env_file: + config = load_config() + + ## install git dependencies: + ''' + install_git_dep( + repo_name = "eoa-publication-model", + repo_uri = "https://github.molgen.mpg.de/EditionOpenAccess/eoa-publication-model.git", + repo_hash = "d76a81feef1ebb708a90376d3f5a7eccb51807b0" + ) + ''' + + create_dirs( config ) + + # rebuild docker image: + if args.build: + run( + env = config, + build = True, + ) diff --git a/scripts/run.py b/scripts/run.py new file mode 100755 index 0000000..953f986 --- /dev/null +++ b/scripts/run.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python3 + +from utils.settings import BASE_DIR, load_config +from utils.functions import run + +import subprocess +import shlex +import os +from time import sleep + +if __name__ == '__main__': + + from argparse import ArgumentParser + + config = load_config() + + parser = ArgumentParser( + description="run the container" + ) + parser.add_argument( + "--build", + action = "store_true" + ) + parser.add_argument( + "CMD", + nargs="*" + ) + + args = parser.parse_args() + + CMD= \ + (vars(args)['CMD']) + run( + env=config, + build = args.build, + cmd=CMD + ) diff --git a/scripts/stop.py b/scripts/stop.py new file mode 100755 index 0000000..2ff879a --- /dev/null +++ b/scripts/stop.py @@ -0,0 +1,28 @@ +#!/usr/bin/env python3 + +from utils.settings import BASE_DIR, load_config + +import subprocess +import os + + +def stop( env ): + # run application + subprocess.call( + "docker-compose down", + shell=True, + env=env + ) + +if __name__ == '__main__': + + from argparse import ArgumentParser + + config = load_config() + + parser = ArgumentParser( + description="stop the webserver" + ) + args = parser.parse_args() + + stop( config ) diff --git a/scripts/utils/functions.py b/scripts/utils/functions.py new file mode 100644 index 0000000..7123746 --- /dev/null +++ b/scripts/utils/functions.py @@ -0,0 +1,42 @@ + + +import subprocess +import shlex + + +def run( + env, + build=False, + cmd=[] +): + if len(cmd) > 0: + # run application + subprocess.call( + shlex.split("docker-compose run eoa_skripts") + cmd, + env=env + ) + else: + # run application + subprocess.call( + shlex.split("docker-compose up -d") + (["--build"] if build else []), + env=env + ) + +def exec_in_container( + *args, + env +): + from functools import reduce + cmd = \ + [ "docker-compose", "exec", "eoa_skripts", "bash" ] + + if len(args) is not 0: + cmd.append( "-c" ) + cmd.append( + reduce(lambda x,y: x + " " + y, args ) + ) + print( "cmd: " + str(cmd) ) + subprocess.check_call( + cmd, + env=env + ) diff --git a/scripts/utils/settings.py b/scripts/utils/settings.py new file mode 100644 index 0000000..23409cb --- /dev/null +++ b/scripts/utils/settings.py @@ -0,0 +1,97 @@ +from pathlib import Path +from configparser import ConfigParser, ExtendedInterpolation + +from collections.abc import MutableMapping +import shlex +import os + +BASE_DIR = Path( __file__ ).parent.parent.parent +SCRIPT_DIR = Path( __file__ ).parent.parent + +orig_config_file = SCRIPT_DIR / "config" / "env.conf" +env_file = BASE_DIR / ".env" + + +def load_config( + include_local_path=True +): + from itertools import chain + parser = ConfigParser() + parser.optionxform=str + with open(env_file) as lines: + lines = chain(("[config]",), lines) # This line does the trick. + parser.read_file(lines) + print( "Loaded from {}:".format( env_file ) ) + for k,v in parser['config'].items() : + print( "{k}={v}".format( k = k, v = v ) ) + print( "------------------------------" ) + config = dict(parser['config']) + if include_local_path: + path = os.environ['PATH'] + config = { "PATH": path, ** config } + return config + +def create_docker_env_file( + overwrite = False +): + if overwrite or not(env_file.exists()): + import subprocess + user = subprocess.check_output( + shlex.split("id -u"), + universal_newlines=True + ).rstrip("\n") + group = subprocess.check_output( + shlex.split("id -g"), + universal_newlines=True + ).rstrip("\n") + + print( "user id: {}, group id: {}".format( user, group) ) + print( "writing docker .env file to {}, appended user and group".format( env_file ) ) + config = __load_orig_config( orig_config_file ) + config['config']['USER'] = user + config['config']['GROUP'] = group + __write_as_env( + config, + env_file + ) + else: + print( f"INFO: '{env_file}' already exists" ) + +def __load_orig_config( filename ): + config = ConfigParser( + interpolation = ExtendedInterpolation() + ) + # make keys case sensitive + config.optionxform=str + # print( "path: %s" % orig_config_file ) + config.read( orig_config_file ) + ''' + print( "Loaded from '{}':".format( orig_config_file ) ) + for k,v in config['config'].items() : + print( "{k}={v}".format( k = k, v = v ) ) + print( "------------------------------" ) + ''' + return config + + +def __write_as_env( cfg, filename ): + # create a new config parser with the right output options: + # and copy the fields into it: + config = ConfigParser() + config.optionxform=str + config['config'] = {} + for k, v in cfg.items('config'): + config['config'][k] = v + # write the file: + with open(filename, "w") as f: + config.write( + f, + space_around_delimiters=False + ) + # skip the section header '[ bla ]' + with open( filename, "r+" ) as f: + d = f.readlines() + f.seek(0) + for l in d[1:]: + f.write(l) + f.truncate() diff --git a/bib_add_keyword.py b/src/bib_add_keyword.py similarity index 100% rename from bib_add_keyword.py rename to src/bib_add_keyword.py diff --git a/bibformat/4ht/auto/fo.el b/src/bibformat/4ht/auto/fo.el similarity index 100% rename from bibformat/4ht/auto/fo.el rename to src/bibformat/4ht/auto/fo.el diff --git a/bibformat/4ht/bibliography4ht.tex b/src/bibformat/4ht/bibliography4ht.tex similarity index 100% rename from bibformat/4ht/bibliography4ht.tex rename to src/bibformat/4ht/bibliography4ht.tex diff --git a/bibformat/4ht/eoa.cfg b/src/bibformat/4ht/eoa.cfg similarity index 100% rename from bibformat/4ht/eoa.cfg rename to src/bibformat/4ht/eoa.cfg diff --git a/bibformat/4ht/fo.bib b/src/bibformat/4ht/fo.bib similarity index 100% rename from bibformat/4ht/fo.bib rename to src/bibformat/4ht/fo.bib diff --git a/bibformat/4ht/htform.py b/src/bibformat/4ht/htform.py similarity index 100% rename from bibformat/4ht/htform.py rename to src/bibformat/4ht/htform.py diff --git a/bibformat/4ht/older/fo.4ct b/src/bibformat/4ht/older/fo.4ct similarity index 100% rename from bibformat/4ht/older/fo.4ct rename to src/bibformat/4ht/older/fo.4ct diff --git a/bibformat/4ht/older/fo.4tc b/src/bibformat/4ht/older/fo.4tc similarity index 100% rename from bibformat/4ht/older/fo.4tc rename to src/bibformat/4ht/older/fo.4tc diff --git a/bibformat/4ht/older/fo.aux b/src/bibformat/4ht/older/fo.aux similarity index 100% rename from bibformat/4ht/older/fo.aux rename to src/bibformat/4ht/older/fo.aux diff --git a/bibformat/4ht/older/fo.bbl b/src/bibformat/4ht/older/fo.bbl similarity index 100% rename from bibformat/4ht/older/fo.bbl rename to src/bibformat/4ht/older/fo.bbl diff --git a/bibformat/4ht/older/fo.bcf b/src/bibformat/4ht/older/fo.bcf similarity index 100% rename from bibformat/4ht/older/fo.bcf rename to src/bibformat/4ht/older/fo.bcf diff --git a/bibformat/4ht/older/fo.css b/src/bibformat/4ht/older/fo.css similarity index 100% rename from bibformat/4ht/older/fo.css rename to src/bibformat/4ht/older/fo.css diff --git a/bibformat/4ht/older/fo.dvi b/src/bibformat/4ht/older/fo.dvi similarity index 100% rename from bibformat/4ht/older/fo.dvi rename to src/bibformat/4ht/older/fo.dvi diff --git a/bibformat/4ht/older/fo.ent b/src/bibformat/4ht/older/fo.ent similarity index 100% rename from bibformat/4ht/older/fo.ent rename to src/bibformat/4ht/older/fo.ent diff --git a/bibformat/4ht/older/fo.html b/src/bibformat/4ht/older/fo.html similarity index 100% rename from bibformat/4ht/older/fo.html rename to src/bibformat/4ht/older/fo.html diff --git a/bibformat/4ht/older/fo.idv b/src/bibformat/4ht/older/fo.idv similarity index 100% rename from bibformat/4ht/older/fo.idv rename to src/bibformat/4ht/older/fo.idv diff --git a/bibformat/4ht/older/fo.lg b/src/bibformat/4ht/older/fo.lg similarity index 100% rename from bibformat/4ht/older/fo.lg rename to src/bibformat/4ht/older/fo.lg diff --git a/bibformat/4ht/older/fo.odt b/src/bibformat/4ht/older/fo.odt similarity index 100% rename from bibformat/4ht/older/fo.odt rename to src/bibformat/4ht/older/fo.odt diff --git a/bibformat/4ht/older/fo.run.xml b/src/bibformat/4ht/older/fo.run.xml similarity index 100% rename from bibformat/4ht/older/fo.run.xml rename to src/bibformat/4ht/older/fo.run.xml diff --git a/bibformat/4ht/older/fo.tex b/src/bibformat/4ht/older/fo.tex similarity index 100% rename from bibformat/4ht/older/fo.tex rename to src/bibformat/4ht/older/fo.tex diff --git a/bibformat/4ht/older/fo.tmp b/src/bibformat/4ht/older/fo.tmp similarity index 100% rename from bibformat/4ht/older/fo.tmp rename to src/bibformat/4ht/older/fo.tmp diff --git a/bibformat/4ht/older/fo.xml b/src/bibformat/4ht/older/fo.xml similarity index 100% rename from bibformat/4ht/older/fo.xml rename to src/bibformat/4ht/older/fo.xml diff --git a/bibformat/4ht/older/fo.xref b/src/bibformat/4ht/older/fo.xref similarity index 100% rename from bibformat/4ht/older/fo.xref rename to src/bibformat/4ht/older/fo.xref diff --git a/bibformat/4ht/older/folbl.tex b/src/bibformat/4ht/older/folbl.tex similarity index 100% rename from bibformat/4ht/older/folbl.tex rename to src/bibformat/4ht/older/folbl.tex diff --git a/bibformat/4ht/older/sam.tex b/src/bibformat/4ht/older/sam.tex similarity index 100% rename from bibformat/4ht/older/sam.tex rename to src/bibformat/4ht/older/sam.tex diff --git a/bibformat/4ht/tmp.html b/src/bibformat/4ht/tmp.html similarity index 100% rename from bibformat/4ht/tmp.html rename to src/bibformat/4ht/tmp.html diff --git a/bibformat/4ht/tmp_files/test.4ct b/src/bibformat/4ht/tmp_files/test.4ct similarity index 100% rename from bibformat/4ht/tmp_files/test.4ct rename to src/bibformat/4ht/tmp_files/test.4ct diff --git a/bibformat/4ht/tmp_files/test.4tc b/src/bibformat/4ht/tmp_files/test.4tc similarity index 100% rename from bibformat/4ht/tmp_files/test.4tc rename to src/bibformat/4ht/tmp_files/test.4tc diff --git a/bibformat/4ht/tmp_files/test.aux b/src/bibformat/4ht/tmp_files/test.aux similarity index 100% rename from bibformat/4ht/tmp_files/test.aux rename to src/bibformat/4ht/tmp_files/test.aux diff --git a/bibformat/4ht/tmp_files/test.bbl b/src/bibformat/4ht/tmp_files/test.bbl similarity index 100% rename from bibformat/4ht/tmp_files/test.bbl rename to src/bibformat/4ht/tmp_files/test.bbl diff --git a/bibformat/4ht/tmp_files/test.bcf b/src/bibformat/4ht/tmp_files/test.bcf similarity index 100% rename from bibformat/4ht/tmp_files/test.bcf rename to src/bibformat/4ht/tmp_files/test.bcf diff --git a/bibformat/4ht/tmp_files/test.blg b/src/bibformat/4ht/tmp_files/test.blg similarity index 100% rename from bibformat/4ht/tmp_files/test.blg rename to src/bibformat/4ht/tmp_files/test.blg diff --git a/bibformat/4ht/tmp_files/test.css b/src/bibformat/4ht/tmp_files/test.css similarity index 100% rename from bibformat/4ht/tmp_files/test.css rename to src/bibformat/4ht/tmp_files/test.css diff --git a/bibformat/4ht/tmp_files/test.dvi b/src/bibformat/4ht/tmp_files/test.dvi similarity index 100% rename from bibformat/4ht/tmp_files/test.dvi rename to src/bibformat/4ht/tmp_files/test.dvi diff --git a/bibformat/4ht/tmp_files/test.html b/src/bibformat/4ht/tmp_files/test.html similarity index 100% rename from bibformat/4ht/tmp_files/test.html rename to src/bibformat/4ht/tmp_files/test.html diff --git a/bibformat/4ht/tmp_files/test.idv b/src/bibformat/4ht/tmp_files/test.idv similarity index 100% rename from bibformat/4ht/tmp_files/test.idv rename to src/bibformat/4ht/tmp_files/test.idv diff --git a/bibformat/4ht/tmp_files/test.lg b/src/bibformat/4ht/tmp_files/test.lg similarity index 100% rename from bibformat/4ht/tmp_files/test.lg rename to src/bibformat/4ht/tmp_files/test.lg diff --git a/bibformat/4ht/tmp_files/test.run.xml b/src/bibformat/4ht/tmp_files/test.run.xml similarity index 100% rename from bibformat/4ht/tmp_files/test.run.xml rename to src/bibformat/4ht/tmp_files/test.run.xml diff --git a/bibformat/4ht/tmp_files/test.tex b/src/bibformat/4ht/tmp_files/test.tex similarity index 100% rename from bibformat/4ht/tmp_files/test.tex rename to src/bibformat/4ht/tmp_files/test.tex diff --git a/bibformat/4ht/tmp_files/test.tmp b/src/bibformat/4ht/tmp_files/test.tmp similarity index 100% rename from bibformat/4ht/tmp_files/test.tmp rename to src/bibformat/4ht/tmp_files/test.tmp diff --git a/bibformat/4ht/tmp_files/test.xref b/src/bibformat/4ht/tmp_files/test.xref similarity index 100% rename from bibformat/4ht/tmp_files/test.xref rename to src/bibformat/4ht/tmp_files/test.xref diff --git a/bibformat/chicago-author-date-custom.csl b/src/bibformat/chicago-author-date-custom.csl similarity index 100% rename from bibformat/chicago-author-date-custom.csl rename to src/bibformat/chicago-author-date-custom.csl diff --git a/config/disabled_tralics_conf/amsmath.plt b/src/config/disabled_tralics_conf/amsmath.plt similarity index 100% rename from config/disabled_tralics_conf/amsmath.plt rename to src/config/disabled_tralics_conf/amsmath.plt diff --git a/config/eoaconvert.cfg b/src/config/eoaconvert.cfg similarity index 100% rename from config/eoaconvert.cfg rename to src/config/eoaconvert.cfg diff --git a/config/tralics.tcf b/src/config/tralics.tcf similarity index 100% rename from config/tralics.tcf rename to src/config/tralics.tcf diff --git a/config/tralics_conf/amsbsy.plt b/src/config/tralics_conf/amsbsy.plt similarity index 100% rename from config/tralics_conf/amsbsy.plt rename to src/config/tralics_conf/amsbsy.plt diff --git a/config/tralics_conf/amscd.plt b/src/config/tralics_conf/amscd.plt similarity index 100% rename from config/tralics_conf/amscd.plt rename to src/config/tralics_conf/amscd.plt diff --git a/config/tralics_conf/amsfonts.plt b/src/config/tralics_conf/amsfonts.plt similarity index 100% rename from config/tralics_conf/amsfonts.plt rename to src/config/tralics_conf/amsfonts.plt diff --git a/config/tralics_conf/amsgen.plt b/src/config/tralics_conf/amsgen.plt similarity index 100% rename from config/tralics_conf/amsgen.plt rename to src/config/tralics_conf/amsgen.plt diff --git a/config/tralics_conf/amsopn.plt b/src/config/tralics_conf/amsopn.plt similarity index 100% rename from config/tralics_conf/amsopn.plt rename to src/config/tralics_conf/amsopn.plt diff --git a/config/tralics_conf/amssymb.plt b/src/config/tralics_conf/amssymb.plt similarity index 100% rename from config/tralics_conf/amssymb.plt rename to src/config/tralics_conf/amssymb.plt diff --git a/config/tralics_conf/amstext.plt b/src/config/tralics_conf/amstext.plt similarity index 100% rename from config/tralics_conf/amstext.plt rename to src/config/tralics_conf/amstext.plt diff --git a/config/tralics_conf/amsthm.plt b/src/config/tralics_conf/amsthm.plt similarity index 100% rename from config/tralics_conf/amsthm.plt rename to src/config/tralics_conf/amsthm.plt diff --git a/config/tralics_conf/amsxtra.plt b/src/config/tralics_conf/amsxtra.plt similarity index 100% rename from config/tralics_conf/amsxtra.plt rename to src/config/tralics_conf/amsxtra.plt diff --git a/config/tralics_conf/cgloss4e.plt b/src/config/tralics_conf/cgloss4e.plt similarity index 100% rename from config/tralics_conf/cgloss4e.plt rename to src/config/tralics_conf/cgloss4e.plt diff --git a/config/tralics_conf/etex.plt b/src/config/tralics_conf/etex.plt similarity index 100% rename from config/tralics_conf/etex.plt rename to src/config/tralics_conf/etex.plt diff --git a/config/tralics_conf/fancyvrb.plt b/src/config/tralics_conf/fancyvrb.plt similarity index 100% rename from config/tralics_conf/fancyvrb.plt rename to src/config/tralics_conf/fancyvrb.plt diff --git a/config/tralics_conf/html.plt b/src/config/tralics_conf/html.plt similarity index 100% rename from config/tralics_conf/html.plt rename to src/config/tralics_conf/html.plt diff --git a/config/tralics_conf/inputenc.plt b/src/config/tralics_conf/inputenc.plt similarity index 100% rename from config/tralics_conf/inputenc.plt rename to src/config/tralics_conf/inputenc.plt diff --git a/config/tralics_conf/minimal.clt b/src/config/tralics_conf/minimal.clt similarity index 100% rename from config/tralics_conf/minimal.clt rename to src/config/tralics_conf/minimal.clt diff --git a/config/tralics_conf/natbib.plt b/src/config/tralics_conf/natbib.plt similarity index 100% rename from config/tralics_conf/natbib.plt rename to src/config/tralics_conf/natbib.plt diff --git a/create_tmpbib.py b/src/create_tmpbib.py similarity index 100% rename from create_tmpbib.py rename to src/create_tmpbib.py diff --git a/data/aux/bibliography4ht.tex b/src/data/aux/bibliography4ht.tex similarity index 100% rename from data/aux/bibliography4ht.tex rename to src/data/aux/bibliography4ht.tex diff --git a/data/aux/formula.tex b/src/data/aux/formula.tex similarity index 100% rename from data/aux/formula.tex rename to src/data/aux/formula.tex diff --git a/data/aux/largebib-xml.tex b/src/data/aux/largebib-xml.tex similarity index 100% rename from data/aux/largebib-xml.tex rename to src/data/aux/largebib-xml.tex diff --git a/data/aux/largebib.tex b/src/data/aux/largebib.tex similarity index 100% rename from data/aux/largebib.tex rename to src/data/aux/largebib.tex diff --git a/data/aux/pre_bib.tex b/src/data/aux/pre_bib.tex similarity index 100% rename from data/aux/pre_bib.tex rename to src/data/aux/pre_bib.tex diff --git a/data/aux/translations.xml b/src/data/aux/translations.xml similarity index 100% rename from data/aux/translations.xml rename to src/data/aux/translations.xml diff --git a/data/dtd_files/classes.dtd b/src/data/dtd_files/classes.dtd similarity index 100% rename from data/dtd_files/classes.dtd rename to src/data/dtd_files/classes.dtd diff --git a/data/dtd_files/html/lat1.ent b/src/data/dtd_files/html/lat1.ent similarity index 100% rename from data/dtd_files/html/lat1.ent rename to src/data/dtd_files/html/lat1.ent diff --git a/data/dtd_files/html/special.ent b/src/data/dtd_files/html/special.ent similarity index 100% rename from data/dtd_files/html/special.ent rename to src/data/dtd_files/html/special.ent diff --git a/data/dtd_files/html/symbol.ent b/src/data/dtd_files/html/symbol.ent similarity index 100% rename from data/dtd_files/html/symbol.ent rename to src/data/dtd_files/html/symbol.ent diff --git a/data/dtd_files/iso8879/isoamsa.ent b/src/data/dtd_files/iso8879/isoamsa.ent similarity index 100% rename from data/dtd_files/iso8879/isoamsa.ent rename to src/data/dtd_files/iso8879/isoamsa.ent diff --git a/data/dtd_files/iso8879/isoamsb.ent b/src/data/dtd_files/iso8879/isoamsb.ent similarity index 100% rename from data/dtd_files/iso8879/isoamsb.ent rename to src/data/dtd_files/iso8879/isoamsb.ent diff --git a/data/dtd_files/iso8879/isoamsc.ent b/src/data/dtd_files/iso8879/isoamsc.ent similarity index 100% rename from data/dtd_files/iso8879/isoamsc.ent rename to src/data/dtd_files/iso8879/isoamsc.ent diff --git a/data/dtd_files/iso8879/isoamsn.ent b/src/data/dtd_files/iso8879/isoamsn.ent similarity index 100% rename from data/dtd_files/iso8879/isoamsn.ent rename to src/data/dtd_files/iso8879/isoamsn.ent diff --git a/data/dtd_files/iso8879/isoamso.ent b/src/data/dtd_files/iso8879/isoamso.ent similarity index 100% rename from data/dtd_files/iso8879/isoamso.ent rename to src/data/dtd_files/iso8879/isoamso.ent diff --git a/data/dtd_files/iso8879/isoamsr.ent b/src/data/dtd_files/iso8879/isoamsr.ent similarity index 100% rename from data/dtd_files/iso8879/isoamsr.ent rename to src/data/dtd_files/iso8879/isoamsr.ent diff --git a/data/dtd_files/iso8879/isobox.ent b/src/data/dtd_files/iso8879/isobox.ent similarity index 100% rename from data/dtd_files/iso8879/isobox.ent rename to src/data/dtd_files/iso8879/isobox.ent diff --git a/data/dtd_files/iso8879/isocyr1.ent b/src/data/dtd_files/iso8879/isocyr1.ent similarity index 100% rename from data/dtd_files/iso8879/isocyr1.ent rename to src/data/dtd_files/iso8879/isocyr1.ent diff --git a/data/dtd_files/iso8879/isocyr2.ent b/src/data/dtd_files/iso8879/isocyr2.ent similarity index 100% rename from data/dtd_files/iso8879/isocyr2.ent rename to src/data/dtd_files/iso8879/isocyr2.ent diff --git a/data/dtd_files/iso8879/isodia.ent b/src/data/dtd_files/iso8879/isodia.ent similarity index 100% rename from data/dtd_files/iso8879/isodia.ent rename to src/data/dtd_files/iso8879/isodia.ent diff --git a/data/dtd_files/iso8879/isogrk1.ent b/src/data/dtd_files/iso8879/isogrk1.ent similarity index 100% rename from data/dtd_files/iso8879/isogrk1.ent rename to src/data/dtd_files/iso8879/isogrk1.ent diff --git a/data/dtd_files/iso8879/isogrk2.ent b/src/data/dtd_files/iso8879/isogrk2.ent similarity index 100% rename from data/dtd_files/iso8879/isogrk2.ent rename to src/data/dtd_files/iso8879/isogrk2.ent diff --git a/data/dtd_files/iso8879/isogrk3.ent b/src/data/dtd_files/iso8879/isogrk3.ent similarity index 100% rename from data/dtd_files/iso8879/isogrk3.ent rename to src/data/dtd_files/iso8879/isogrk3.ent diff --git a/data/dtd_files/iso8879/isogrk4.ent b/src/data/dtd_files/iso8879/isogrk4.ent similarity index 100% rename from data/dtd_files/iso8879/isogrk4.ent rename to src/data/dtd_files/iso8879/isogrk4.ent diff --git a/data/dtd_files/iso8879/isolat1.ent b/src/data/dtd_files/iso8879/isolat1.ent similarity index 100% rename from data/dtd_files/iso8879/isolat1.ent rename to src/data/dtd_files/iso8879/isolat1.ent diff --git a/data/dtd_files/iso8879/isolat2.ent b/src/data/dtd_files/iso8879/isolat2.ent similarity index 100% rename from data/dtd_files/iso8879/isolat2.ent rename to src/data/dtd_files/iso8879/isolat2.ent diff --git a/data/dtd_files/iso8879/isonum.ent b/src/data/dtd_files/iso8879/isonum.ent similarity index 100% rename from data/dtd_files/iso8879/isonum.ent rename to src/data/dtd_files/iso8879/isonum.ent diff --git a/data/dtd_files/iso8879/isopub.ent b/src/data/dtd_files/iso8879/isopub.ent similarity index 100% rename from data/dtd_files/iso8879/isopub.ent rename to src/data/dtd_files/iso8879/isopub.ent diff --git a/data/dtd_files/iso8879/isotech.ent b/src/data/dtd_files/iso8879/isotech.ent similarity index 100% rename from data/dtd_files/iso8879/isotech.ent rename to src/data/dtd_files/iso8879/isotech.ent diff --git a/data/dtd_files/iso9573-13/isoamsa.ent b/src/data/dtd_files/iso9573-13/isoamsa.ent similarity index 100% rename from data/dtd_files/iso9573-13/isoamsa.ent rename to src/data/dtd_files/iso9573-13/isoamsa.ent diff --git a/data/dtd_files/iso9573-13/isoamsb.ent b/src/data/dtd_files/iso9573-13/isoamsb.ent similarity index 100% rename from data/dtd_files/iso9573-13/isoamsb.ent rename to src/data/dtd_files/iso9573-13/isoamsb.ent diff --git a/data/dtd_files/iso9573-13/isoamsc.ent b/src/data/dtd_files/iso9573-13/isoamsc.ent similarity index 100% rename from data/dtd_files/iso9573-13/isoamsc.ent rename to src/data/dtd_files/iso9573-13/isoamsc.ent diff --git a/data/dtd_files/iso9573-13/isoamsn.ent b/src/data/dtd_files/iso9573-13/isoamsn.ent similarity index 100% rename from data/dtd_files/iso9573-13/isoamsn.ent rename to src/data/dtd_files/iso9573-13/isoamsn.ent diff --git a/data/dtd_files/iso9573-13/isoamso.ent b/src/data/dtd_files/iso9573-13/isoamso.ent similarity index 100% rename from data/dtd_files/iso9573-13/isoamso.ent rename to src/data/dtd_files/iso9573-13/isoamso.ent diff --git a/data/dtd_files/iso9573-13/isoamsr.ent b/src/data/dtd_files/iso9573-13/isoamsr.ent similarity index 100% rename from data/dtd_files/iso9573-13/isoamsr.ent rename to src/data/dtd_files/iso9573-13/isoamsr.ent diff --git a/data/dtd_files/iso9573-13/isogrk3.ent b/src/data/dtd_files/iso9573-13/isogrk3.ent similarity index 100% rename from data/dtd_files/iso9573-13/isogrk3.ent rename to src/data/dtd_files/iso9573-13/isogrk3.ent diff --git a/data/dtd_files/iso9573-13/isogrk4.ent b/src/data/dtd_files/iso9573-13/isogrk4.ent similarity index 100% rename from data/dtd_files/iso9573-13/isogrk4.ent rename to src/data/dtd_files/iso9573-13/isogrk4.ent diff --git a/data/dtd_files/iso9573-13/isomfrk.ent b/src/data/dtd_files/iso9573-13/isomfrk.ent similarity index 100% rename from data/dtd_files/iso9573-13/isomfrk.ent rename to src/data/dtd_files/iso9573-13/isomfrk.ent diff --git a/data/dtd_files/iso9573-13/isomopf.ent b/src/data/dtd_files/iso9573-13/isomopf.ent similarity index 100% rename from data/dtd_files/iso9573-13/isomopf.ent rename to src/data/dtd_files/iso9573-13/isomopf.ent diff --git a/data/dtd_files/iso9573-13/isomscr.ent b/src/data/dtd_files/iso9573-13/isomscr.ent similarity index 100% rename from data/dtd_files/iso9573-13/isomscr.ent rename to src/data/dtd_files/iso9573-13/isomscr.ent diff --git a/data/dtd_files/iso9573-13/isotech.ent b/src/data/dtd_files/iso9573-13/isotech.ent similarity index 100% rename from data/dtd_files/iso9573-13/isotech.ent rename to src/data/dtd_files/iso9573-13/isotech.ent diff --git a/data/dtd_files/mathml/mmlalias.ent b/src/data/dtd_files/mathml/mmlalias.ent similarity index 100% rename from data/dtd_files/mathml/mmlalias.ent rename to src/data/dtd_files/mathml/mmlalias.ent diff --git a/data/dtd_files/mathml/mmlextra.ent b/src/data/dtd_files/mathml/mmlextra.ent similarity index 100% rename from data/dtd_files/mathml/mmlextra.ent rename to src/data/dtd_files/mathml/mmlextra.ent diff --git a/data/dtd_files/mathml2-qname-1.mod b/src/data/dtd_files/mathml2-qname-1.mod similarity index 100% rename from data/dtd_files/mathml2-qname-1.mod rename to src/data/dtd_files/mathml2-qname-1.mod diff --git a/data/dtd_files/mathml2.dtd b/src/data/dtd_files/mathml2.dtd similarity index 100% rename from data/dtd_files/mathml2.dtd rename to src/data/dtd_files/mathml2.dtd diff --git a/data/epub_files/GPL.txt b/src/data/epub_files/GPL.txt similarity index 100% rename from data/epub_files/GPL.txt rename to src/data/epub_files/GPL.txt diff --git a/data/epub_files/LICENCE.txt b/src/data/epub_files/LICENCE.txt similarity index 100% rename from data/epub_files/LICENCE.txt rename to src/data/epub_files/LICENCE.txt diff --git a/data/epub_files/LinLibertine_R.otf b/src/data/epub_files/LinLibertine_R.otf similarity index 100% rename from data/epub_files/LinLibertine_R.otf rename to src/data/epub_files/LinLibertine_R.otf diff --git a/data/epub_files/LinLibertine_RI.otf b/src/data/epub_files/LinLibertine_RI.otf similarity index 100% rename from data/epub_files/LinLibertine_RI.otf rename to src/data/epub_files/LinLibertine_RI.otf diff --git a/data/epub_files/LinLibertine_RZ.otf b/src/data/epub_files/LinLibertine_RZ.otf similarity index 100% rename from data/epub_files/LinLibertine_RZ.otf rename to src/data/epub_files/LinLibertine_RZ.otf diff --git a/data/epub_files/LinLibertine_RZI.otf b/src/data/epub_files/LinLibertine_RZI.otf similarity index 100% rename from data/epub_files/LinLibertine_RZI.otf rename to src/data/epub_files/LinLibertine_RZI.otf diff --git a/data/epub_files/OFL-1.1.txt b/src/data/epub_files/OFL-1.1.txt similarity index 100% rename from data/epub_files/OFL-1.1.txt rename to src/data/epub_files/OFL-1.1.txt diff --git a/data/epub_files/eoa-epub-libertine.css b/src/data/epub_files/eoa-epub-libertine.css similarity index 100% rename from data/epub_files/eoa-epub-libertine.css rename to src/data/epub_files/eoa-epub-libertine.css diff --git a/data/epub_files/eoa-epub-termes.css b/src/data/epub_files/eoa-epub-termes.css similarity index 100% rename from data/epub_files/eoa-epub-termes.css rename to src/data/epub_files/eoa-epub-termes.css diff --git a/data/epub_files/epubchapter.xml b/src/data/epub_files/epubchapter.xml similarity index 100% rename from data/epub_files/epubchapter.xml rename to src/data/epub_files/epubchapter.xml diff --git a/data/epub_files/epubcontainer.xml b/src/data/epub_files/epubcontainer.xml similarity index 100% rename from data/epub_files/epubcontainer.xml rename to src/data/epub_files/epubcontainer.xml diff --git a/data/epub_files/epubcontentopf.xml b/src/data/epub_files/epubcontentopf.xml similarity index 100% rename from data/epub_files/epubcontentopf.xml rename to src/data/epub_files/epubcontentopf.xml diff --git a/data/epub_files/epubcover.xhtml b/src/data/epub_files/epubcover.xhtml similarity index 100% rename from data/epub_files/epubcover.xhtml rename to src/data/epub_files/epubcover.xhtml diff --git a/data/epub_files/epubintro-sources.xhtml b/src/data/epub_files/epubintro-sources.xhtml similarity index 100% rename from data/epub_files/epubintro-sources.xhtml rename to src/data/epub_files/epubintro-sources.xhtml diff --git a/data/epub_files/epubintro.xhtml b/src/data/epub_files/epubintro.xhtml similarity index 100% rename from data/epub_files/epubintro.xhtml rename to src/data/epub_files/epubintro.xhtml diff --git a/data/epub_files/epubintro_de.xhtml b/src/data/epub_files/epubintro_de.xhtml similarity index 100% rename from data/epub_files/epubintro_de.xhtml rename to src/data/epub_files/epubintro_de.xhtml diff --git a/data/epub_files/epubmimetype b/src/data/epub_files/epubmimetype similarity index 100% rename from data/epub_files/epubmimetype rename to src/data/epub_files/epubmimetype diff --git a/data/epub_files/epubtocncx.xml b/src/data/epub_files/epubtocncx.xml similarity index 100% rename from data/epub_files/epubtocncx.xml rename to src/data/epub_files/epubtocncx.xml diff --git a/data/epub_files/texgyretermes-bold.otf b/src/data/epub_files/texgyretermes-bold.otf similarity index 100% rename from data/epub_files/texgyretermes-bold.otf rename to src/data/epub_files/texgyretermes-bold.otf diff --git a/data/epub_files/texgyretermes-bolditalic.otf b/src/data/epub_files/texgyretermes-bolditalic.otf similarity index 100% rename from data/epub_files/texgyretermes-bolditalic.otf rename to src/data/epub_files/texgyretermes-bolditalic.otf diff --git a/data/epub_files/texgyretermes-italic.otf b/src/data/epub_files/texgyretermes-italic.otf similarity index 100% rename from data/epub_files/texgyretermes-italic.otf rename to src/data/epub_files/texgyretermes-italic.otf diff --git a/data/epub_files/texgyretermes-regular.otf b/src/data/epub_files/texgyretermes-regular.otf similarity index 100% rename from data/epub_files/texgyretermes-regular.otf rename to src/data/epub_files/texgyretermes-regular.otf diff --git a/data/misc/echoparser.py b/src/data/misc/echoparser.py similarity index 100% rename from data/misc/echoparser.py rename to src/data/misc/echoparser.py diff --git a/data/misc/epub.sh b/src/data/misc/epub.sh similarity index 100% rename from data/misc/epub.sh rename to src/data/misc/epub.sh diff --git a/data/misc/epub_test.sh b/src/data/misc/epub_test.sh similarity index 100% rename from data/misc/epub_test.sh rename to src/data/misc/epub_test.sh diff --git a/data/tei_boilerplate.cfg b/src/data/tei_boilerplate.cfg similarity index 100% rename from data/tei_boilerplate.cfg rename to src/data/tei_boilerplate.cfg diff --git a/eoatex2imxml.py b/src/eoatex2imxml.py similarity index 100% rename from eoatex2imxml.py rename to src/eoatex2imxml.py diff --git a/eoatex2pdf.py b/src/eoatex2pdf.py similarity index 100% rename from eoatex2pdf.py rename to src/eoatex2pdf.py diff --git a/find_chapters.py b/src/find_chapters.py similarity index 100% rename from find_chapters.py rename to src/find_chapters.py diff --git a/fix_tei.py b/src/fix_tei.py similarity index 100% rename from fix_tei.py rename to src/fix_tei.py diff --git a/gather_pickledata.py b/src/gather_pickledata.py similarity index 100% rename from gather_pickledata.py rename to src/gather_pickledata.py diff --git a/idassigner.py b/src/idassigner.py similarity index 100% rename from idassigner.py rename to src/idassigner.py diff --git a/imxml2django.py b/src/imxml2django.py similarity index 100% rename from imxml2django.py rename to src/imxml2django.py diff --git a/imxml2epub.py b/src/imxml2epub.py similarity index 100% rename from imxml2epub.py rename to src/imxml2epub.py diff --git a/imxml2tei.py b/src/imxml2tei.py similarity index 100% rename from imxml2tei.py rename to src/imxml2tei.py diff --git a/mkimage.py b/src/mkimage.py similarity index 100% rename from mkimage.py rename to src/mkimage.py diff --git a/parsezotero.py b/src/parsezotero.py similarity index 100% rename from parsezotero.py rename to src/parsezotero.py diff --git a/tei2eoatex.xsl b/src/tei2eoatex.xsl similarity index 100% rename from tei2eoatex.xsl rename to src/tei2eoatex.xsl diff --git a/tei2html.py b/src/tei2html.py similarity index 100% rename from tei2html.py rename to src/tei2html.py diff --git a/tei2html/tei2html.xsl b/src/tei2html/tei2html.xsl similarity index 100% rename from tei2html/tei2html.xsl rename to src/tei2html/tei2html.xsl diff --git a/tei2html/tei2html_chapter.xsl b/src/tei2html/tei2html_chapter.xsl similarity index 100% rename from tei2html/tei2html_chapter.xsl rename to src/tei2html/tei2html_chapter.xsl diff --git a/tei2html/tei2html_chapter_utils.xsl b/src/tei2html/tei2html_chapter_utils.xsl similarity index 100% rename from tei2html/tei2html_chapter_utils.xsl rename to src/tei2html/tei2html_chapter_utils.xsl diff --git a/tei2html/tei2html_publ_frontpage.xsl b/src/tei2html/tei2html_publ_frontpage.xsl similarity index 100% rename from tei2html/tei2html_publ_frontpage.xsl rename to src/tei2html/tei2html_publ_frontpage.xsl diff --git a/tei2html/tei2html_publ_frontpage_utils.xsl b/src/tei2html/tei2html_publ_frontpage_utils.xsl similarity index 100% rename from tei2html/tei2html_publ_frontpage_utils.xsl rename to src/tei2html/tei2html_publ_frontpage_utils.xsl diff --git a/tei2html/utils/common.xsl b/src/tei2html/utils/common.xsl similarity index 100% rename from tei2html/utils/common.xsl rename to src/tei2html/utils/common.xsl diff --git a/tei2html/utils/html_rules.xsl b/src/tei2html/utils/html_rules.xsl similarity index 100% rename from tei2html/utils/html_rules.xsl rename to src/tei2html/utils/html_rules.xsl diff --git a/tei2html/utils/print.xsl b/src/tei2html/utils/print.xsl similarity index 100% rename from tei2html/utils/print.xsl rename to src/tei2html/utils/print.xsl diff --git a/tei2imxml.py b/src/tei2imxml.py similarity index 100% rename from tei2imxml.py rename to src/tei2imxml.py diff --git a/utils/bib2html.py b/src/utils/bib2html.py similarity index 100% rename from utils/bib2html.py rename to src/utils/bib2html.py diff --git a/utils/libeoabibitem.py b/src/utils/libeoabibitem.py similarity index 100% rename from utils/libeoabibitem.py rename to src/utils/libeoabibitem.py diff --git a/utils/libeoaconvert.py b/src/utils/libeoaconvert.py similarity index 100% rename from utils/libeoaconvert.py rename to src/utils/libeoaconvert.py diff --git a/utils/load_config.py b/src/utils/load_config.py similarity index 100% rename from utils/load_config.py rename to src/utils/load_config.py