98 lines
2.1 KiB
Python
Executable File
98 lines
2.1 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import sys
|
|
|
|
from etherpump import __VERSION__
|
|
|
|
|
|
def subcommands():
|
|
"""List all sub-commands for the `--help` output."""
|
|
output = []
|
|
|
|
subcommands = [
|
|
'creatediffhtml',
|
|
'deletepad',
|
|
'dumpcsv',
|
|
'gethtml',
|
|
'gettext',
|
|
'index',
|
|
'init',
|
|
'list',
|
|
'listauthors',
|
|
'publication',
|
|
'pull',
|
|
'revisionscount',
|
|
'sethtml',
|
|
'settext',
|
|
'showmeta',
|
|
]
|
|
|
|
for subcommand in subcommands:
|
|
try:
|
|
# http://stackoverflow.com/questions/301134/dynamic-module-import-in-python
|
|
doc = __import__(
|
|
"etherpump.commands.%s" % subcommand,
|
|
fromlist=["etherdump.commands"],
|
|
).__doc__
|
|
except ModuleNotFoundError:
|
|
doc = ""
|
|
output.append(f' {subcommand}: {doc}')
|
|
|
|
output.sort()
|
|
|
|
return '\n'.join(output)
|
|
|
|
|
|
usage = """
|
|
_
|
|
| |
|
|
_ _|_ | | _ ,_ _ _ _ _ _
|
|
|/ | |/ \ |/ / | |/ \_| | / |/ |/ | |/ \_
|
|
|__/|_/| |_/|__/ |_/|__/ \_/|_/ | | |_/|__/
|
|
/| /|
|
|
\| \|
|
|
Usage:
|
|
|
|
etherpump CMD
|
|
|
|
where CMD could be:
|
|
|
|
{}
|
|
|
|
For more information on each command try:
|
|
|
|
etherpump CMD --help
|
|
|
|
""".format(
|
|
subcommands()
|
|
)
|
|
|
|
try:
|
|
cmd = sys.argv[1]
|
|
if cmd.startswith("-"):
|
|
args = sys.argv
|
|
else:
|
|
args = sys.argv[2:]
|
|
|
|
if len(sys.argv) < 3:
|
|
if any(arg in args for arg in ['--help', '-h']):
|
|
print(usage)
|
|
sys.exit(0)
|
|
elif any(arg in args for arg in ['--version', '-v']):
|
|
print('etherpump {}'.format(__VERSION__))
|
|
sys.exit(0)
|
|
|
|
except IndexError:
|
|
print(usage)
|
|
sys.exit(0)
|
|
|
|
try:
|
|
# http://stackoverflow.com/questions/301134/dynamic-module-import-in-python
|
|
cmdmod = __import__(
|
|
"etherpump.commands.%s" % cmd, fromlist=["etherdump.commands"]
|
|
)
|
|
cmdmod.main(args)
|
|
except ImportError as e:
|
|
print("Error performing command '{0}'\n(python said: {1})\n".format(cmd, e))
|
|
print(usage)
|