-
Notifications
You must be signed in to change notification settings - Fork 0
/
__init__.py
51 lines (45 loc) · 1.82 KB
/
__init__.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
from sys import argv as __argv
__pairs = None
args = __argv[1:]
options_help = '''Options:
'''
description = ''
usage = ''
def command(typename='STR'):
def inner(func):
global __pairs, options_help
options_help += f' {func.__name__.replace("_", "-")}: {typename} - {func.__doc__}\n'
if __pairs is None:
__pairs = {func.__name__.replace('_', '-'): func}
else:
__pairs[func.__name__.replace('_', '-')] = func
return inner
def start():
global __pairs, options_help, usage, args, description
current_arg = -1
if __argv[1:] == []:
if usage == '':
print('\n' + description + f'\n\nUsage: {__argv[0]} [OPTIONS]\n\n\n' + options_help + ' -help, -h - Show this message and exit.\n')
else:
print('\n' + description + f'\n\nUsage: {usage}\n\n\n' + options_help + ' -help, -h - Show this message and exit.\n')
else:
for arg in args:
current_arg += 1
if arg in __pairs:
try:
__pairs[arg](args[current_arg + 2])
except (IndexError, ValueError):
__pairs[arg](args[current_arg + 1])
except TypeError:
__pairs[arg]()
else:
if arg == '-help' or arg == '-h':
if usage == '':
print('\n' + description + f'\n\nUsage: {__argv[0]} [OPTIONS]\n\n\n' + options_help + ' -help, -h - Show this message and exit.\n')
else:
print('\n' + description + f'\n\nUsage: {usage}\n\n\n' + options_help + ' -help, -h - Show this message and exit.\n')
else:
pass
def search_arg(arg_name: str):
global args
return args[args.index(arg_name)]