Pumping pads as files into publishing frameworks!
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

98 lines
2.1 KiB

6 years ago
#!/usr/bin/env python3
9 years ago
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()
)
9 years ago
try:
cmd = sys.argv[1]
if cmd.startswith("-"):
args = sys.argv
9 years ago
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)
9 years ago
except IndexError:
print(usage)
sys.exit(0)
9 years ago
try:
# http://stackoverflow.com/questions/301134/dynamic-module-import-in-python
cmdmod = __import__(
"etherpump.commands.%s" % cmd, fromlist=["etherdump.commands"]
)
9 years ago
cmdmod.main(args)
6 years ago
except ImportError as e:
print("Error performing command '{0}'\n(python said: {1})\n".format(cmd, e))
print(usage)