2021-03-29 13:29:26 +02:00
|
|
|
from abc import abstractmethod, ABC
|
2021-03-04 17:36:02 +01:00
|
|
|
|
2022-05-22 18:32:34 +02:00
|
|
|
from cpl_core.configuration.argument_executable_abc import ArgumentExecutableABC
|
2022-05-19 20:21:46 +02:00
|
|
|
from cpl_core.console import Console
|
2021-03-04 17:36:02 +01:00
|
|
|
|
2022-05-19 08:25:32 +02:00
|
|
|
|
2022-05-22 18:32:34 +02:00
|
|
|
class CommandABC(ArgumentExecutableABC):
|
2021-03-04 17:36:02 +01:00
|
|
|
@abstractmethod
|
|
|
|
def __init__(self):
|
2021-03-29 13:29:26 +02:00
|
|
|
ABC.__init__(self)
|
2021-03-04 17:36:02 +01:00
|
|
|
|
2021-04-11 16:36:59 +02:00
|
|
|
@property
|
|
|
|
@abstractmethod
|
2023-02-20 15:55:20 +01:00
|
|
|
def help_message(self) -> str:
|
|
|
|
pass
|
2022-05-19 20:21:46 +02:00
|
|
|
|
2022-05-22 18:32:34 +02:00
|
|
|
@abstractmethod
|
2023-02-20 15:55:20 +01:00
|
|
|
def execute(self, args: list[str]):
|
|
|
|
pass
|
2022-05-22 18:32:34 +02:00
|
|
|
|
|
|
|
def run(self, args: list[str]):
|
2023-02-20 15:55:20 +01:00
|
|
|
if "help" in args:
|
2022-05-19 20:21:46 +02:00
|
|
|
Console.write_line(self.help_message)
|
|
|
|
return
|
|
|
|
|
2022-05-22 18:32:34 +02:00
|
|
|
self.execute(args)
|