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:
@@ -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.")
|
|
||||||
|
Reference in New Issue
Block a user