#!/usr/bin/python3

import argparse
import sys
import dater

from erimp import Erimp
from holis import Holis

desc = 'update the wHOL ISuse data for an issuedate'
parser = argparse.ArgumentParser(description=desc)
parser.add_argument('-v', action='store_true', help='raise verbosity')
parser.add_argument('-H', action='store_true', help='historic issuedates')
parser.add_argument('-P', action='store_true', help='post release run')
parser.add_argument('-b', action='store_true', help='blatt only')
parser.add_argument('bapis', metavar='bnp', type=str, nargs='*',
                    help='bits and pieces arguments')
args = parser.parse_args()

e = Erimp(args.bapis, do_verbose=args.v)

if e.given_issuedate is None and not args.P:
    print(f"I need an issuedate in {e.impna}")
    sys.exit()

holis = Holis(e, do_verbose=args.v)

if args.b:
    holis.blatt_only()
    sys.exit()

if args.H:
    if 'bremspi' not in e.conf:
        print("I need the bremspi for historic issue dates")
        sys.exit()
    bremspi = int(e.conf['bremspi'])
    issuedates = e.issuedates[bremspi:]
    issuedates.reverse()
    for issuedate in issuedates:
        holis.complete_issue(issuedate)
    sys.exit()

if args.P:
    ## called at release time
    if 'bremspi' not in e.conf:
        print("I need the bremspi for post_release")
        sys.exit()
    ## push the last issue forward
    holis.poish(dater.tonight())
    sys.exit()

if e.given_issuedate is None:
    print("I need an issuedate")
    sys.exit()

if e.given_repcode is None:
    holis.complete_issue(e.given_issuedate)
    sys.exit()

## insert a specifc report issue
# # this does not exist any mone
# holis.repis(e.given_issuedate, e.given_repcode)
holis.complete_issue(e.given_issuedate)
