#!/usr/bin/python3

import argparse
import sys
import docing

import filer
from erimp import Erimp
from recon import Recon
from rixer import Rixer

desc = 'export flat report configuration, mainly for nitpo'
parser = argparse.ArgumentParser(description=desc)
parser.add_argument('-v', action='store_true', help='raise verbosity')
parser.add_argument('-a', action='store_true', help='all (with donore)')
# parser.add_argument('-H', action='store_true', help='include history')
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)
recon = Recon(e)
if 'recons_export_fudi' not in e.conf:
    print("I need an recons_export_fudi")
    sys.exit()
out_fudi = e.conf['recons_export_fudi']

recon = Recon(e, do_verbose=args.v)
rixer = Rixer(e, do_verbose=args.v)
recons = recon.fill('available')
if args.a:
    for repcode in recons:
        in_fufi = recons[repcode]
        out_fufi = out_fudi + '/' + repcode + '.amf.xml'
        #if not filer.donere(out_fufi, [in_fufi]):
        #    if args.v:
        #        print(f"I don't update {out_fufi}")
        #    continue
        doc = recon.doc(repcode, add_state=[])
        doc = rixer.flatten(doc)
        # doc = rixer.remove_history(doc)
        filer.install_xml(doc.getroot(), out_fufi)
    sys.exit(0)

if e.given_repcode is None:
    print("Give me a repcode.")
    sys.exit()
## repeat code
repcode = e.given_repcode
in_fufi = recons[repcode]
out_fufi = out_fudi + '/' + repcode + '.xml'
doc = recon.doc(repcode, add_state=[])
doc = rixer.flatten(doc)
# doc = rixer.remove_history(doc)
filer.install_xml(doc.getroot(), out_fufi)
