diff --git a/ftf_cli/commands/generate_module.py b/ftf_cli/commands/generate_module.py index b8c59e6..1551bf5 100644 --- a/ftf_cli/commands/generate_module.py +++ b/ftf_cli/commands/generate_module.py @@ -22,7 +22,24 @@ help="The version of the module. If not provided, the default version will be 1.0. and the module will increment the version number.", ) def generate_module(path, intent, flavor, cloud, title, description, version): - """Generate a new module.""" + """ + Generate a new module by rendering built-in templates into a target directory. + + Parameters: + path (str): Destination base path where the module directory will be created. + intent (str): Intent name used to construct the module path and passed to templates. + flavor (str): Flavor name used to construct the module path and passed to templates. + cloud (str): Cloud identifier or comma-separated list of clouds (e.g., "aws" or "aws,azure"). + title (str): Human-readable title passed into templates. + description (str): Description text passed into templates. + version (str): Version identifier appended to the module path; must not be a digits-only string. + + Raises: + click.UsageError: If `version` is digits-only, if the requested version already exists, or if version parsing fails when attempting to suggest an alternate version. + + Side effects: + Creates the module directory (including parent directories) and writes rendered template files into it. + """ if str(version).isdigit(): raise click.UsageError( f"❌ Version {version} is not a valid version. Use a valid version like 1.0" @@ -81,4 +98,4 @@ def generate_module(path, intent, flavor, cloud, title, description, version): ) # Remove .j2 to get the real file name with open(os.path.join(module_path, file_name), "w", encoding='utf-8') as f: f.write(rendered_content) - click.echo(f"✅ Module generated at: {module_path}") + click.echo(f"✅ Module generated at: {module_path}") \ No newline at end of file