From 2f785536e1e6d924dad7c9c988eaa3dd960ec541 Mon Sep 17 00:00:00 2001 From: Sven Heidemann Date: Mon, 15 Nov 2021 01:03:50 +0100 Subject: [PATCH] Improved path handling for new projects --- src/cpl_cli/source_creator/console_builder.py | 29 ++++++++++++++----- src/cpl_cli/source_creator/library_builder.py | 29 ++++++++++++++----- 2 files changed, 42 insertions(+), 16 deletions(-) diff --git a/src/cpl_cli/source_creator/console_builder.py b/src/cpl_cli/source_creator/console_builder.py index 1a2056ea..3fffaec5 100644 --- a/src/cpl_cli/source_creator/console_builder.py +++ b/src/cpl_cli/source_creator/console_builder.py @@ -72,14 +72,11 @@ class ConsoleBuilder: :param workspace: :return: """ - src_rel_path = '' - if '/' in project_name: - old_pj_name = project_name - parts = project_name.split('/') - project_name = parts[len(parts) - 1] - src_rel_path = old_pj_name.split(project_name)[0] - - project_name_snake = String.convert_to_snake_case(project_name) + pj_name = project_name + if '/' in pj_name: + pj_name = pj_name.split('/')[len(pj_name.split('/')) - 1] + + project_name_snake = String.convert_to_snake_case(pj_name) if workspace is None: templates: list[TemplateFileABC] = [ @@ -129,10 +126,26 @@ class ConsoleBuilder: templates.append(MainWithoutApplicationBaseTemplate( src_name, src_rel_path, use_async)) + if '/' in project_name: + old_pj_name = project_name + parts = project_name.split('/') + project_name = parts[len(parts) - 1] + src_rel_path = old_pj_name.split(project_name)[0] + proj_name = project_name + if src_rel_path.endswith('/'): + src_rel_path = src_rel_path[:len(src_rel_path) - 1] + + if src_rel_path != '': + proj_name = f'{src_rel_path}/{project_name}' if workspace is not None: proj_name = project_name_snake + if src_rel_path != '': + project_file_path = f'{src_rel_path}/{project_name_snake}/{project_name}.json' + else: + project_file_path = f'{project_name_snake}/{project_name}.json' + project_file_path = f'{project_name_snake}/{project_name}.json' if workspace is None: src_path = f'src/{project_name_snake}' diff --git a/src/cpl_cli/source_creator/library_builder.py b/src/cpl_cli/source_creator/library_builder.py index 6c3274ae..126440ad 100644 --- a/src/cpl_cli/source_creator/library_builder.py +++ b/src/cpl_cli/source_creator/library_builder.py @@ -73,14 +73,11 @@ class LibraryBuilder: :param workspace: :return: """ - src_rel_path = '' - if '/' in project_name: - old_pj_name = project_name - parts = project_name.split('/') - project_name = parts[len(parts) - 1] - src_rel_path = old_pj_name.split(project_name)[0] + pj_name = project_name + if '/' in pj_name: + pj_name = pj_name.split('/')[len(pj_name.split('/')) - 1] - project_name_snake = String.convert_to_snake_case(project_name) + project_name_snake = String.convert_to_snake_case(pj_name) if workspace is None: templates: list[TemplateFileABC] = [ @@ -107,6 +104,7 @@ class LibraryBuilder: if not os.path.isdir(project_path): os.makedirs(project_path) + src_rel_path = '' src_name = project_name_snake if workspace is None: src_rel_path = os.path.join('src/', src_name) @@ -131,11 +129,26 @@ class LibraryBuilder: templates.append(MainWithoutApplicationBaseTemplate( src_name, src_rel_path, use_async)) + if '/' in project_name: + old_pj_name = project_name + parts = project_name.split('/') + project_name = parts[len(parts) - 1] + src_rel_path = old_pj_name.split(project_name)[0] + proj_name = project_name + if src_rel_path.endswith('/'): + src_rel_path = src_rel_path[:len(src_rel_path) - 1] + + if src_rel_path != '': + proj_name = f'{src_rel_path}/{project_name}' if workspace is not None: proj_name = project_name_snake - project_file_path = f'{project_name_snake}/{project_name}.json' + if src_rel_path != '': + project_file_path = f'{src_rel_path}/{project_name_snake}/{project_name}.json' + else: + project_file_path = f'{project_name_snake}/{project_name}.json' + if workspace is None: src_path = f'src/{project_name_snake}' workspace_file_path = f'{proj_name}/cpl-workspace.json'