mirror of
ssh://git.janware.com/janware/proj/jw-pkg
synced 2026-04-25 17:45:55 +02:00
During __init__(), commands have no idea of their parent. This is not a problem as of now, but is easy to fix, and it's architecturally desirable to be prepared just in case, so add the parent argument to the ctor before more commands are added. Signed-off-by: Jan Lindemann <jan@janware.com>
24 lines
811 B
Python
24 lines
811 B
Python
# -*- coding: utf-8 -*-
|
|
|
|
from argparse import Namespace, ArgumentParser
|
|
|
|
from ..Cmd import Cmd
|
|
from ..CmdProjects import CmdProjects
|
|
|
|
class CmdCommands(Cmd): # export
|
|
|
|
def __init__(self, parent: CmdProjects) -> None:
|
|
super().__init__(parent, 'commands', help='List available commands')
|
|
|
|
def add_arguments(self, parser: ArgumentParser) -> None:
|
|
super().add_arguments(parser)
|
|
|
|
def _run(self, args: Namespace) -> None:
|
|
import sys, re, os, glob
|
|
this_dir = os.path.dirname(sys.modules[__name__].__file__)
|
|
ret = []
|
|
for file_name in glob.glob('Cmd*.py', root_dir=this_dir):
|
|
cc_name = re.sub(r'^Cmd|\.py', '', file_name)
|
|
name = re.sub(r'(?<!^)(?=[A-Z])', '-', cc_name).lower()
|
|
ret.append(name)
|
|
print(' '.join(ret))
|