#!/usr/bin/env python
from __future__ import print_function
"""
Injests PDS metadata into database for quick querying
"""
import os

import pdsc

def main(idx, outputdir, configfile, extensions):

    for e in extensions:
        with open(e, 'r') as f:
            code = compile(f.read(), os.path.basename(e), 'exec')
            exec(code)

    lfile, tfile = pdsc.get_idx_file_pair(idx)

    for f, n in zip((tfile, lfile), ('table', 'label')):
        if not os.path.exists(f):
            raise ValueError('Expected %s file %s does not exist' % (n, f))

    if not os.path.exists(outputdir):
        os.mkdir(outputdir)

    if configfile is None:
        configfile = pdsc.DEFAULT_CONFIG_DIR

    pdsc.ingest_idx(lfile, tfile, configfile, outputdir)

if __name__ == '__main__':
    import argparse
    parser = argparse.ArgumentParser(argument_default=argparse.SUPPRESS)

    parser.add_argument('idx', help='cumulative index file location')
    parser.add_argument('outputdir')
    parser.add_argument('-c', '--configfile', default=None)
    parser.add_argument('-e', '--extensions', default=[], nargs='+')

    args = parser.parse_args()
    main(**vars(args))
