#!/usr/bin/env python3
# -*- coding: utf-8 -*-

import sys
import os
import importlib.util
import argparse

parser = argparse.ArgumentParser()
subparsers = parser.add_subparsers()

importlib.machinery.SOURCE_SUFFIXES.append('')

bin_folder = os.path.dirname(__file__)
scriptnames = [
	filename.split('-', maxsplit = 1)[1]
	for filename in os.listdir(bin_folder)
	if os.path.isfile(os.path.join(bin_folder, filename)) and filename.startswith('hateno-')
]

for scriptname in scriptnames:
	subparser = subparsers.add_parser(scriptname)

	module_name = f'hateno{scriptname.replace("-", "")}'
	spec = importlib.util.spec_from_file_location(module_name, os.path.join(bin_folder, f'hateno-{scriptname}'))
	module = importlib.util.module_from_spec(spec)
	sys.modules[module_name] = module
	spec.loader.exec_module(module)

	module.addArguments(subparser)
	subparser.set_defaults(func = module.action)

args = parser.parse_args()
try:
	args.func(args)

except AttributeError:
	parser.print_help()
