diff --git a/.gitignore b/.gitignore index 53bb4e6..049c68f 100644 --- a/.gitignore +++ b/.gitignore @@ -6,5 +6,9 @@ __pycache__/ # Sphinx documentation docs/_build/ +# Build files +venv/ + # Temporary files _.* +/output/ diff --git a/Makefile b/Makefile new file mode 100644 index 0000000..90d3a64 --- /dev/null +++ b/Makefile @@ -0,0 +1,4 @@ +default: example + +example: + ./venv/bin/python3 run_example.py -d . diff --git a/ddhf/ddhf/decorated_context.py b/ddhf/ddhf/decorated_context.py index 52104a3..901b7bf 100644 --- a/ddhf/ddhf/decorated_context.py +++ b/ddhf/ddhf/decorated_context.py @@ -110,13 +110,29 @@ def from_argv(self): "AUTOARCHAEOLOGIST_BITSTORE_CACHE": "ddhf_bitstore_cache", } -def main(job, html_subdir="tmp", **kwargs): +def parse_arguments(argv=None): + parser = argparse.ArgumentParser() + parser.add_argument('-o', '--out', default='/tmp/_autoarchaologist') + + args = parser.parse_args(args=argv) + if args.out == '.': + args.out = os.path.join(os.getcwd(), "_autoarchaologist") + return args + +def main(job, html_subdir, **kwargs): + args = parse_arguments() + kwargs["html_dir"] = args.out + ''' A standard main routine to reduce boiler-plate ''' for key in os.environ: i = OK_ENVS.get(key) if i: kwargs[i] = os.environ[key] + if 'html_dir' not in kwargs: + raise AttributeError("missing: html_dir") + + kwargs['html_dir'] = os.path.join(kwargs['html_dir'], html_subdir) kwargs.setdefault('download_links', True) kwargs.setdefault('download_limit', 1 << 20) diff --git a/output/.gitkeep b/output/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/run_example.py b/run_example.py index ad7c063..5fddbc1 100644 --- a/run_example.py +++ b/run_example.py @@ -1,19 +1,35 @@ +import argparse import os +import sys import autoarchaeologist -from autoarchaeologist.generic.bigdigits import BigDigits +from autoarchaeologist.generic.bigtext import BigText from autoarchaeologist.generic.samesame import SameSame from autoarchaeologist.data_general.absbin import AbsBin from autoarchaeologist.data_general.papertapechecksum import DGC_PaperTapeCheckSum +def parse_arguments(argv=None): + parser = argparse.ArgumentParser() + parser.add_argument("-d", "--dir", default="/tmp/_autoarchaologist") + + args = parser.parse_args(args=argv) + if args.dir == ".": + args.dir = os.path.join(os.getcwd(), "output", "_autoarchaologist") + return args if __name__ == "__main__": + args = parse_arguments() + + try: + os.mkdir(args.dir) + except FileExistsError: + pass - ctx = autoarchaeologist.Excavation() + ctx = autoarchaeologist.Excavation(html_dir=args.dir) - ctx.add_examiner(BigDigits) + ctx.add_examiner(BigText) ctx.add_examiner(AbsBin) ctx.add_examiner(DGC_PaperTapeCheckSum) ctx.add_examiner(SameSame) @@ -22,11 +38,6 @@ ctx.start_examination() - try: - os.mkdir("/tmp/_autoarchaologist") - except FileExistsError: - pass - - ctx.produce_html(html_dir="/tmp/_autoarchaologist") + ctx.produce_html() print("Now point your browser at", ctx.filename_for(ctx).link)