Fix command listing to work on pip package installs
This commit is contained in:
parent
e1691830b1
commit
d9988a932c
@ -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 = """
|
||||
|
Loading…
Reference in New Issue
Block a user