Refactors project initialization logic

Simplifies file handling by consolidating template copying logic
into a single loop. Corrects the resolution of the templates
directory path for improved reliability.

Improves maintainability and reduces redundancy in code.
This commit is contained in:
2025-04-27 18:51:46 +00:00
parent d78bfcc408
commit 215e4aa545

View File

@@ -15,25 +15,22 @@ class InitCommand:
"""Initialize a new HDLBuild project.""" """Initialize a new HDLBuild project."""
project_dir = Path.cwd() project_dir = Path.cwd()
# Paths to templates # Correctly resolve path to templates directory
template_dir = Path(__file__).parent / "templates" script_dir = Path(__file__).parent.resolve()
template_dir = (script_dir / ".." / "templates").resolve()
# .gitignore # Files to copy
gitignore_template = template_dir / "gitignore.template" files = [
gitignore_target = project_dir / ".gitignore" ("gitignore.template", ".gitignore"),
("project.yml.template", "project.yml"),
]
if not gitignore_target.exists(): for template_name, target_name in files:
shutil.copy(gitignore_template, gitignore_target) template_path = template_dir / template_name
self.console_utils.print("Created .gitignore") target_path = project_dir / target_name
else:
self.console_utils.print(".gitignore already exists, skipping.")
# project.yml if not target_path.exists():
project_yml_template = template_dir / "project.yml.template" shutil.copy(template_path, target_path)
project_yml_target = project_dir / "project.yml" self.console_utils.print(f"Created {target_name}")
else:
if not project_yml_target.exists(): self.console_utils.print(f"{target_name} already exists, skipping.")
shutil.copy(project_yml_template, project_yml_target)
self.console_utils.print("Created project.yml")
else:
self.console_utils.print("project.yml already exists, skipping.")