2021.4 #19
@ -6,6 +6,7 @@ from cpl.console.foreground_color_enum import ForegroundColorEnum
|
|||||||
from cpl.console.console import Console
|
from cpl.console.console import Console
|
||||||
from cpl.utils.string import String
|
from cpl.utils.string import String
|
||||||
from cpl_cli.command_abc import CommandABC
|
from cpl_cli.command_abc import CommandABC
|
||||||
|
from cpl_cli.templates.generate.init_template import InitTemplate
|
||||||
from cpl_cli.templates.generate.abc_template import ABCTemplate
|
from cpl_cli.templates.generate.abc_template import ABCTemplate
|
||||||
from cpl_cli.templates.generate.class_template import ClassTemplate
|
from cpl_cli.templates.generate.class_template import ClassTemplate
|
||||||
from cpl_cli.templates.generate.configmodel_template import ConfigModelTemplate
|
from cpl_cli.templates.generate.configmodel_template import ConfigModelTemplate
|
||||||
@ -106,6 +107,19 @@ class GenerateService(CommandABC):
|
|||||||
file_path = os.path.join(self._env.working_directory, template.path, template.name)
|
file_path = os.path.join(self._env.working_directory, template.path, template.name)
|
||||||
if not os.path.isdir(os.path.dirname(file_path)):
|
if not os.path.isdir(os.path.dirname(file_path)):
|
||||||
os.makedirs(os.path.dirname(file_path))
|
os.makedirs(os.path.dirname(file_path))
|
||||||
|
directory = ''
|
||||||
|
for subdir in template.path.split('/'):
|
||||||
|
directory = os.path.join(directory, subdir)
|
||||||
|
if subdir != 'src':
|
||||||
|
file = InitTemplate(class_name, schematic, self._schematics[schematic]["Upper"], rel_path)
|
||||||
|
Console.spinner(
|
||||||
|
f'Creating {os.path.abspath(directory)}/{file.name}',
|
||||||
|
self._create_file,
|
||||||
|
os.path.join(os.path.abspath(directory), file.name),
|
||||||
|
file.value,
|
||||||
|
text_foreground_color=ForegroundColorEnum.green,
|
||||||
|
spinner_foreground_color=ForegroundColorEnum.cyan
|
||||||
|
)
|
||||||
|
|
||||||
if os.path.isfile(file_path):
|
if os.path.isfile(file_path):
|
||||||
Console.error(f'{String.first_to_upper(schematic)} already exists!')
|
Console.error(f'{String.first_to_upper(schematic)} already exists!')
|
||||||
|
32
src/cpl_cli/templates/generate/init_template.py
Normal file
32
src/cpl_cli/templates/generate/init_template.py
Normal file
@ -0,0 +1,32 @@
|
|||||||
|
import textwrap
|
||||||
|
from string import Template
|
||||||
|
|
||||||
|
from cpl.utils.string import String
|
||||||
|
from cpl_cli.templates.template_file_abc import TemplateFileABC
|
||||||
|
|
||||||
|
|
||||||
|
class InitTemplate(TemplateFileABC):
|
||||||
|
|
||||||
|
def __init__(self, name: str, schematic: str, schematic_upper: str, path: str):
|
||||||
|
TemplateFileABC.__init__(self)
|
||||||
|
|
||||||
|
self._name = f'__init__.py'
|
||||||
|
self._class_name = f'{String.first_to_upper(name)}{schematic_upper}'
|
||||||
|
self._path = path
|
||||||
|
self._value = textwrap.dedent("""\
|
||||||
|
# imports
|
||||||
|
""")
|
||||||
|
|
||||||
|
@property
|
||||||
|
def name(self) -> str:
|
||||||
|
return self._name
|
||||||
|
|
||||||
|
@property
|
||||||
|
def path(self) -> str:
|
||||||
|
return self._path
|
||||||
|
|
||||||
|
@property
|
||||||
|
def value(self) -> str:
|
||||||
|
return Template(self._value).substitute(
|
||||||
|
Name=self._class_name
|
||||||
|
)
|
Loading…
Reference in New Issue
Block a user