diff --git a/.gitignore b/.gitignore index 53bb4e6..34e87de 100644 --- a/.gitignore +++ b/.gitignore @@ -8,3 +8,4 @@ docs/_build/ # Temporary files _.* +_autoarchaologist/ diff --git a/autoarchaeologist/ddhf/bitstore.py b/autoarchaeologist/ddhf/bitstore.py index cc553a0..49939c1 100644 --- a/autoarchaeologist/ddhf/bitstore.py +++ b/autoarchaeologist/ddhf/bitstore.py @@ -8,8 +8,6 @@ import mmap import urllib.request -import ddhf_bitstore_metadata - from ..base import artifact from ..base import excavation from ..container import simh_tap_file @@ -165,10 +163,6 @@ def fetch_single(self, arg): print("Could not fetch", arg) return - meta = ddhf_bitstore_metadata.internals.metadata.MetadataBase(metatxt) - if meta is None: - return - if self.media_types and not self.check_media_type(meta): return diff --git a/autoarchaeologist/ddhf/decorated_context.py b/autoarchaeologist/ddhf/decorated_context.py index cfe7c5b..9fc6c8b 100644 --- a/autoarchaeologist/ddhf/decorated_context.py +++ b/autoarchaeologist/ddhf/decorated_context.py @@ -6,6 +6,7 @@ ''' +import argparse import os from ..base import excavation @@ -84,13 +85,29 @@ def from_bitstore(self, *args, **kwargs): "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/run_example.py b/run_example.py index ad7c063..20bd247 100644 --- a/run_example.py +++ b/run_example.py @@ -1,5 +1,7 @@ +import argparse import os +import sys import autoarchaeologist @@ -8,10 +10,24 @@ 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(), "_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(AbsBin) @@ -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)