import sys
from importlib import import_module



"""
Plug-in test
"""


class tkParams():
    pass

app = None
cparams = tkParams()


#=============================
# Treat argments
#=============================
def usage(app = None, cparams = None):
    pass

def initialize(app = None, cparams = None):
    cparams.plugin_dir = ''
    cparams.plugin    = ''
    cparams.infile    = '*.txt'

def update_vars(app = None, cparams = None):
    argv = sys.argv
    nargs = len(argv)
    
    if nargs < 3:
        print("Usage: python plugin-test.py plugin_dir module_name infile")
        exit()

    if nargs >= 2:
        cparams.plugin_dir = argv[1]
    if nargs >= 3:
        cparams.plugin = argv[2]
    if nargs >= 4:
        cparams.infile = argv[3]

def main():
    initialize(app, cparams)
    update_vars(app, cparams)

    print("")
    print(f"Load modules:")
    print(f" plugin_dir: {cparams.plugin_dir}")
    print(f" module: {cparams.plugin}")
    sys.path.append(cparams.plugin_dir)
    module = import_module(cparams.plugin)
    print("module=", module)
    if module is None:
        print("")
        print(f"Error: Cannot load [{cparams.plugin}]")
        print("")
        exit()

    file_type = module.check_file_type(cparams.infile)
    if file_type is None:
        print("")
        print(f"Error: [{cparams.infile}] invalid file type")
        print("")

    inf = module.read_data(cparams.infile, cparams = cparams)
    module.print_data(inf)


if __name__ == "__main__":
    main()
