Fix command listing to work on pip package installs

This commit is contained in:
Luke Murphy 2019-10-07 22:42:28 +02:00
parent e1691830b1
commit d9988a932c
No known key found for this signature in database
GPG Key ID: 5E2EF5A63E3718CC
2 changed files with 28 additions and 17 deletions

View File

@ -1,36 +1,46 @@
#!/usr/bin/env python3
import os
import sys
from importlib import import_module
from pathlib import Path
from etherpump import __VERSION__
def subcommands():
"""List all sub-commands for the `--help` output."""
not_sub_commands = ['common.py', 'appendmeta.py', 'html5tidy.py', 'join.py']
subcommands = []
output = []
all_files = os.listdir(Path().absolute() / 'etherpump' / 'commands')
modules = filter(
lambda file: not file.startswith('__')
and not any(file == module for module in not_sub_commands),
all_files,
)
subcommands = [
'creatediffhtml',
'deletepad',
'dumpcsv',
'gethtml',
'gettext',
'index',
'init',
'list',
'listauthors',
'publication',
'pull',
'revisionscount',
'sethtml',
'settext',
'showmeta',
]
for module in modules:
name = module.split('.py')[0]
for subcommand in subcommands:
try:
doc = import_module(f'etherpump.commands.{name}').__doc__
# http://stackoverflow.com/questions/301134/dynamic-module-import-in-python
doc = __import__(
"etherpump.commands.%s" % subcommand,
fromlist=["etherdump.commands"],
).__doc__
except ModuleNotFoundError:
doc = ""
subcommands.append(f' {name}: {doc}')
output.append(f' {subcommand}: {doc}')
subcommands.sort()
output.sort()
return '\n'.join(subcommands)
return '\n'.join(output)
usage = """

View File

@ -48,6 +48,7 @@ setup(
"python-dateutil",
"pypandoc",
"tqdm",
"requests",
],
classifiers=[
'Programming Language :: Python :: 3',