Browse Source
Fix command listing to work on pip package installs
pull/8/head
No known key found for this signature in database
GPG Key ID: 5E2EF5A63E3718CC
2 changed files with
30 additions and
19 deletions
-
bin/etherpump
-
setup.py
|
|
@ -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 = [] |
|
|
|
|
|
|
|
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, |
|
|
|
) |
|
|
|
|
|
|
|
for module in modules: |
|
|
|
name = module.split('.py')[0] |
|
|
|
output = [] |
|
|
|
|
|
|
|
subcommands = [ |
|
|
|
'creatediffhtml', |
|
|
|
'deletepad', |
|
|
|
'dumpcsv', |
|
|
|
'gethtml', |
|
|
|
'gettext', |
|
|
|
'index', |
|
|
|
'init', |
|
|
|
'list', |
|
|
|
'listauthors', |
|
|
|
'publication', |
|
|
|
'pull', |
|
|
|
'revisionscount', |
|
|
|
'sethtml', |
|
|
|
'settext', |
|
|
|
'showmeta', |
|
|
|
] |
|
|
|
|
|
|
|
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 = """ |
|
|
|
|
|
@ -48,6 +48,7 @@ setup( |
|
|
|
"python-dateutil", |
|
|
|
"pypandoc", |
|
|
|
"tqdm", |
|
|
|
"requests", |
|
|
|
], |
|
|
|
classifiers=[ |
|
|
|
'Programming Language :: Python :: 3', |
|
|
|