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.
 
 
 
 
 

100 lines
2.3 KiB

#!/usr/bin/env python3
import os
import sys
DATAPATH = os.path.join(os.path.dirname(os.path.realpath(__file__)), "data")
__VERSION__ = "0.0.20"
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()
)
def main():
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)