#!/usr/bin/python3

import argparse
import os
import sys
import shutil

from erimp import Erimp
from folder import Folder
from ishus import Ishus
from otria import Otria
from mocla import Mocla
from riffer import Riffer
from rixer import Rixer
from notip import Notip
from holis import Holis

import dater

desc = 'test notif'
parser = argparse.ArgumentParser(description=desc)
#parser.add_argument('-v', action='store_true', help='raise verbosity')
#parser.add_argument('-n', action='store_true', help='no notip')
#parser.add_argument('-r', type=str, help='only repcode')
#parser.add_argument('-i', type=str, help='only issudate')
#parser.add_argument('-b', action='store_true', help='use brown')
#parser.add_argument('-B', action='store_true', help='ignore bremse')
#parser.add_argument('-C', action='store_true', help='catch up')
#parser.add_argument('-N', action='store_true', help='force notip')
#parser.add_argument('-R', action='store_true', help='reissue')
parser.add_argument('-f', type=str, help='issue file')
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)

do_verbose = args.v
issues_fudi = e.dirs['issues']
notip = Notip(e, do_verbose=do_verbose)
#otria = Otria(e)
#ishus = Ishus(e)
#rixer = Rixer(e)
#folder = Folder(e)
riffer = Riffer(e, do_verbose=do_verbose)
#mocla = Mocla(e, do_verbose=do_verbose)

# # issues take place at night
#tonight = dater.tonight()
#today = dater.today()

# # ignore the bremse if called by Ernad/Final
do_ignore_bremse = args.B
#if 'bremse' not in e.conf:
#    do_ignore_bremse = True

bremsable = False
if 'bremse' in e.conf:
    bremsable = True

do_catch_up = args.C

## redo if a specif issue and report is called for
do_redo = args.R
if args.i is not None and args.r is not None:
    do_redo = True
## these should be only one way to give the issuedate
if e.given_issuedate is not None and args.r is not None:
    do_redo = True

issuedate = None
go_brown = args.b
fufi = args.f
if fufi is None:
    print("test_notip can only run with -f")
    sys.exit(0)
if fufi is not None:
    if not os.path.isfile(fufi):
        print(f"I don't see {fufi}")
        sys.exit()
    issuedate = riffer.issuedate(fufi)
repcode = riffer.repcode(fufi)
#print(issuedate)
#print(repcode)
result = notip.new_issue(fufi, repcode, dont_send=args.n,
                         date=issuedate,
                         force_send=args.N)
if result is None:
    print(f"I can't notip {repcode} for {issuedate}",
          file=sys.stderr)
