Script 'mail_helper' called by obssrc Hello community, here is the log from the commit of package terragrunt for openSUSE:Factory checked in at 2022-10-08 01:23:26 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/terragrunt (Old) and /work/SRC/openSUSE:Factory/.terragrunt.new.2275 (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "terragrunt" Sat Oct 8 01:23:26 2022 rev:15 rq:1008322 version:0.39.1 Changes: -------- --- /work/SRC/openSUSE:Factory/terragrunt/terragrunt.changes 2022-09-30 17:58:39.977360434 +0200 +++ /work/SRC/openSUSE:Factory/.terragrunt.new.2275/terragrunt.changes 2022-10-08 01:23:29.385990865 +0200 @@ -1,0 +2,7 @@ +Thu Oct 06 05:07:43 UTC 2022 - ka...@b1-systems.de + +- Update to version 0.39.1: + * #2222 Terragrunt sub-commands help output (#2297) + * [skip ci] Update CODEOWNERS (#2296) + +------------------------------------------------------------------- Old: ---- terragrunt-0.39.0.tar.gz New: ---- terragrunt-0.39.1.tar.gz ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ terragrunt.spec ++++++ --- /var/tmp/diff_new_pack.FMVye2/_old 2022-10-08 01:23:31.157994929 +0200 +++ /var/tmp/diff_new_pack.FMVye2/_new 2022-10-08 01:23:31.161994938 +0200 @@ -19,7 +19,7 @@ %define __arch_install_post export NO_BRP_STRIP_DEBUG=true Name: terragrunt -Version: 0.39.0 +Version: 0.39.1 Release: 0 Summary: Thin wrapper for Terraform for working with multiple Terraform modules License: MIT ++++++ _service ++++++ --- /var/tmp/diff_new_pack.FMVye2/_old 2022-10-08 01:23:31.193995012 +0200 +++ /var/tmp/diff_new_pack.FMVye2/_new 2022-10-08 01:23:31.197995021 +0200 @@ -3,7 +3,7 @@ <param name="url">https://github.com/gruntwork-io/terragrunt</param> <param name="scm">git</param> <param name="exclude">.git</param> - <param name="revision">v0.39.0</param> + <param name="revision">v0.39.1</param> <param name="versionformat">@PARENT_TAG@</param> <param name="changesgenerate">enable</param> <param name="versionrewrite-pattern">v(.*)</param> @@ -16,7 +16,7 @@ <param name="compression">gz</param> </service> <service name="go_modules" mode="disabled"> - <param name="archive">terragrunt-0.39.0.tar.gz</param> + <param name="archive">terragrunt-0.39.1.tar.gz</param> </service> </services> ++++++ _servicedata ++++++ --- /var/tmp/diff_new_pack.FMVye2/_old 2022-10-08 01:23:31.217995067 +0200 +++ /var/tmp/diff_new_pack.FMVye2/_new 2022-10-08 01:23:31.217995067 +0200 @@ -1,6 +1,6 @@ <servicedata> <service name="tar_scm"> <param name="url">https://github.com/gruntwork-io/terragrunt</param> - <param name="changesrevision">b93f6ef963edc8aa5a3927c2727494244ba5e7fa</param></service></servicedata> + <param name="changesrevision">28cf05526b861b6bbc51f5a6b2bbc4728ed87204</param></service></servicedata> (No newline at EOF) ++++++ terragrunt-0.39.0.tar.gz -> terragrunt-0.39.1.tar.gz ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.39.0/CODEOWNERS new/terragrunt-0.39.1/CODEOWNERS --- old/terragrunt-0.39.0/CODEOWNERS 2022-09-29 16:59:03.000000000 +0200 +++ new/terragrunt-0.39.1/CODEOWNERS 2022-10-05 19:44:17.000000000 +0200 @@ -1 +1 @@ -* @yorinasub17 @zackproser @rhoboat @denis256 +* @zackproser @rhoboat @denis256 diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.39.0/cli/aws_provider_patch.go new/terragrunt-0.39.1/cli/aws_provider_patch.go --- old/terragrunt-0.39.0/cli/aws_provider_patch.go 2022-09-29 16:59:03.000000000 +0200 +++ new/terragrunt-0.39.1/cli/aws_provider_patch.go 2022-10-05 19:44:17.000000000 +0200 @@ -17,6 +17,16 @@ "github.com/gruntwork-io/terragrunt/util" ) +const awsProviderPatchHelp = ` + Usage: terragrunt aws-provider-patch [OPTIONS] + + Description: + Overwrite settings on nested AWS providers to work around a Terraform bug (issue #13018) + + Options: + --terragrunt-override-attr A key=value attribute to override in a provider block as part of the aws-provider-patch command. May be specified multiple times. +` + // applyAwsProviderPatch finds all Terraform modules nested in the current code (i.e., in the .terraform/modules // folder), looks for provider "aws" { ... } blocks in those modules, and overwrites the attributes in those provider // blocks with the attributes specified in terragrntOptions. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.39.0/cli/cli_app.go new/terragrunt-0.39.1/cli/cli_app.go --- old/terragrunt-0.39.0/cli/cli_app.go 2022-09-29 16:59:03.000000000 +0200 +++ new/terragrunt-0.39.1/cli/cli_app.go 2022-10-05 19:44:17.000000000 +0200 @@ -287,6 +287,13 @@ "-h", } +// map of help functions for each terragrunt command +var terragruntHelp = map[string]string{ + CMD_RENDER_JSON: renderJsonHelp, + CMD_AWS_PROVIDER_PATCH: awsProviderPatchHelp, + CMD_TERRAGRUNT_VALIDATE_INPUTS: validateInputsHelp, +} + // Create the Terragrunt CLI App func CreateTerragruntCli(version string, writer io.Writer, errwriter io.Writer) *cli.App { cli.OsExiter = func(exitCode int) { @@ -364,6 +371,11 @@ // Downloads terraform source if necessary, then runs terraform with the given options and CLI args. // This will forward all the args and extra_arguments directly to Terraform. func RunTerragrunt(terragruntOptions *options.TerragruntOptions) error { + if shouldPrintTerragruntHelp(terragruntOptions) { + helpMessage, _ := terragruntHelp[terragruntOptions.TerraformCommand] + _, err := fmt.Fprintf(terragruntOptions.Writer, "%s\n", helpMessage) + return err + } if shouldPrintTerraformHelp(terragruntOptions) { return shell.RunTerraformCommand(terragruntOptions, terragruntOptions.TerraformCliArgs...) } @@ -582,6 +594,21 @@ for _, tfHelpFlag := range TERRAFORM_HELP_FLAGS { if util.ListContainsElement(terragruntOptions.TerraformCliArgs, tfHelpFlag) { return true + } + } + return false +} + +func shouldPrintTerragruntHelp(terragruntOptions *options.TerragruntOptions) bool { + // check if command is in help map + _, found := terragruntHelp[terragruntOptions.TerraformCommand] + if !found { + return false + } + + for _, tfHelpFlag := range TERRAFORM_HELP_FLAGS { + if util.ListContainsElement(terragruntOptions.TerraformCliArgs, tfHelpFlag) { + return true } } return false diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.39.0/cli/render_json.go new/terragrunt-0.39.1/cli/render_json.go --- old/terragrunt-0.39.0/cli/render_json.go 2022-09-29 16:59:03.000000000 +0200 +++ new/terragrunt-0.39.1/cli/render_json.go 2022-10-05 19:44:17.000000000 +0200 @@ -17,6 +17,17 @@ const defaultJSONOutName = "terragrunt_rendered.json" +const renderJsonHelp = ` + Usage: terragrunt render-json [OPTIONS] + + Description: + Render the final terragrunt config, with all variables, includes, and functions resolved, as json. + + Options: + --with-metadata Add metadata to the rendered JSON file. + --terragrunt-json-out The file path that terragrunt should use when rendering the terragrunt.hcl config as json. +` + // runRenderJSON takes the parsed TerragruntConfig struct and renders it out as JSON so that it can be processed by // other tools. To make it easier to maintain, this uses the cty representation as an intermediary. // NOTE: An unspecified advantage of using the cty representation is that the final block outputs would be a map diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.39.0/cli/validate_inputs.go new/terragrunt-0.39.1/cli/validate_inputs.go --- old/terragrunt-0.39.0/cli/validate_inputs.go 2022-09-29 16:59:03.000000000 +0200 +++ new/terragrunt-0.39.1/cli/validate_inputs.go 2022-10-05 19:44:17.000000000 +0200 @@ -14,6 +14,16 @@ "github.com/gruntwork-io/terragrunt/util" ) +const validateInputsHelp = ` + Usage: terragrunt validate-inputs [OPTIONS] + + Description: + Checks if the terragrunt configured inputs align with the terraform defined variables. + + Options: + --terragrunt-strict-validate Enable strict mode for validation. When strict mode is turned on, an error will be returned if required inputs are missing OR if unused variables are passed to Terragrunt. +` + // validateTerragruntInputs will collect all the terraform variables defined in the target module, and the terragrunt // inputs that are configured, and compare the two to determine if there are any unused inputs or undefined required // inputs. diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/terragrunt-0.39.0/test/integration_test.go new/terragrunt-0.39.1/test/integration_test.go --- old/terragrunt-0.39.0/test/integration_test.go 2022-09-29 16:59:03.000000000 +0200 +++ new/terragrunt-0.39.1/test/integration_test.go 2022-10-05 19:44:17.000000000 +0200 @@ -5000,3 +5000,24 @@ assert.Equal(t, string(serializedExpectedRemoteState), string(serializedRemoteState)) } + +func TestTerragruntRenderJsonHelp(t *testing.T) { + t.Parallel() + + cleanupTerraformFolder(t, TEST_FIXTURE_HOOKS_INIT_ONCE_WITH_SOURCE_NO_BACKEND) + tmpEnvPath := copyEnvironment(t, "fixture-hooks/init-once") + rootPath := util.JoinPath(tmpEnvPath, TEST_FIXTURE_HOOKS_INIT_ONCE_WITH_SOURCE_NO_BACKEND) + + showStdout := bytes.Buffer{} + showStderr := bytes.Buffer{} + + err := runTerragruntCommand(t, fmt.Sprintf("terragrunt render-json --help --terragrunt-non-interactive --terragrunt-working-dir %s", rootPath), &showStdout, &showStderr) + assert.Nil(t, err) + + logBufferContentsLineByLine(t, showStdout, "show stdout") + + output := showStdout.String() + + assert.Contains(t, output, "Usage: terragrunt render-json [OPTIONS]") + assert.Contains(t, output, "--with-metadata") +} ++++++ vendor.tar.gz ++++++ /work/SRC/openSUSE:Factory/terragrunt/vendor.tar.gz /work/SRC/openSUSE:Factory/.terragrunt.new.2275/vendor.tar.gz differ: char 5, line 1