#!/usr/bin/python3

import argparse
import os
import sys

from erimp import Erimp
from inish import Inish

desc = 'updates the index of krikts pmid --> issuedate'
parser = argparse.ArgumentParser(description=desc)
parser.add_argument('-v', action='store_true', help='raise verbosity')
parser.add_argument('-a', action='store_true', help='run all')
parser.add_argument('-l', type=str, help='lookup a papid')
parser.add_argument('bapis', metavar='bnp', type=str, nargs='*',
                    help='bits and pieces arguments')
args = parser.parse_args()

do_verbose = args.v

e = Erimp(args.bapis, do_verbose=do_verbose)
inish = Inish(e)

if args.l is not None:
    papid = args.l
    issuedate = inish.lookup_one(papid)
    if issuedate is None:
        print(f"I don't see {papid}")
        sys.exit()
    print(f"{papid} is in {issuedate}")
    sys.exit()

if args.a:
    inish.update_all(do_verbose=do_verbose)
    sys.exit()

if e.given_issuedate is None:
    print("I need an issuedate")
    sys.exit()
issuedate = e.given_issuedate
if do_verbose:
    print(f"I add issuedate {issuedate} to inish")
dexis_fufi = e.dirs['dexis'] + '/' + issuedate + '.json.gz'
if not os.path.isfile(dexis_fufi):
    print(f"I don't have {dexis_fufi}", file=sys.stderr)
    sys.exit()
inish.update_for_fufi(dexis_fufi, issuedate)
