From 9ab9bea16d470486053f353e9fdd5bece77a64be Mon Sep 17 00:00:00 2001 From: Jesus Cabrera Date: Fri, 11 Sep 2020 17:23:32 -0400 Subject: [PATCH 1/2] Receive import_path flag from the cli --- python/rpdk/go/codegen.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/python/rpdk/go/codegen.py b/python/rpdk/go/codegen.py index 9ba6309a..a13a36b5 100644 --- a/python/rpdk/go/codegen.py +++ b/python/rpdk/go/codegen.py @@ -44,12 +44,15 @@ def __init__(self): ) self.env.filters["translate_type"] = translate_type self.env.filters["safe_reserved"] = safe_reserved - self.namespace = None def _prompt_for_go_path(self, project): - namespace = project.root - prompt = "Enter the GO Import path" - self.import_path = input_with_validation(prompt, validate_path("")) + path_validator = validate_path("") + import_path = path_validator(project.settings["importpath"]) + if not import_path: + prompt = "Enter the GO Import path" + import_path = input_with_validation(prompt, path_validator) + + self.import_path = import_path project.settings["importpath"] = str(self.import_path) def init(self, project): From a93d44c3205768b8e7d2e7baf4e7370ffb49c992 Mon Sep 17 00:00:00 2001 From: Jesus Cabrera Date: Fri, 25 Sep 2020 12:35:22 -0400 Subject: [PATCH 2/2] Add plugin subparser --- python/rpdk/go/codegen.py | 9 +++++---- python/rpdk/go/parser.py | 15 +++++++++++++++ setup.py | 5 ++++- 3 files changed, 24 insertions(+), 5 deletions(-) create mode 100644 python/rpdk/go/parser.py diff --git a/python/rpdk/go/codegen.py b/python/rpdk/go/codegen.py index a13a36b5..bc633a6e 100644 --- a/python/rpdk/go/codegen.py +++ b/python/rpdk/go/codegen.py @@ -47,13 +47,14 @@ def __init__(self): def _prompt_for_go_path(self, project): path_validator = validate_path("") - import_path = path_validator(project.settings["importpath"]) + import_path = path_validator(project.settings.get("import_path")) + if not import_path: prompt = "Enter the GO Import path" import_path = input_with_validation(prompt, path_validator) self.import_path = import_path - project.settings["importpath"] = str(self.import_path) + project.settings["import_path"] = str(self.import_path) def init(self, project): LOG.debug("Init started") @@ -80,7 +81,7 @@ def init(self, project): path = project.root / "go.mod" LOG.debug("Writing go.mod: %s", path) template = self.env.get_template("go.mod.tple") - contents = template.render(path=Path(project.settings["importpath"])) + contents = template.render(path=Path(project.settings["import_path"])) project.safewrite(path, contents) # CloudFormation/SAM template for handler lambda @@ -161,7 +162,7 @@ def generate(self, project): path = root / "main.go" LOG.debug("Writing project: %s", path) template = self.env.get_template("main.go.tple") - importpath = Path(project.settings["importpath"]) + importpath = Path(project.settings["import_path"]) contents = template.render(path=importpath / "cmd" / "resource") project.overwrite(path, contents) format_paths.append(path) diff --git a/python/rpdk/go/parser.py b/python/rpdk/go/parser.py new file mode 100644 index 00000000..1dcfe3d3 --- /dev/null +++ b/python/rpdk/go/parser.py @@ -0,0 +1,15 @@ +def setup_subparser(subparsers, parents): + parser = subparsers.add_parser( + "go", + description="This sub command generates IDE and build files for Go", + parents=parents, + ) + parser.set_defaults(language="go") + + parser.add_argument( + "-p", + "--import-path", + help="Select the go language import path.", + ) + + return parser diff --git a/setup.py b/setup.py index b4efc2b5..e0b686de 100644 --- a/setup.py +++ b/setup.py @@ -38,7 +38,10 @@ def find_version(*file_paths): zip_safe=True, install_requires=["cloudformation-cli>=0.1.2,<0.2", "semver>=2.9.0"], python_requires=">=3.6", - entry_points={"rpdk.v1.languages": ["go = rpdk.go.codegen:GoLanguagePlugin"]}, + entry_points={ + "rpdk.v1.languages": ["go = rpdk.go.codegen:GoLanguagePlugin"], + "rpdk.v1.parsers": ["go = rpdk.go.parser:setup_subparser"], + }, license="Apache License 2.0", classifiers=[ "Development Status :: 4 - Beta",