diff --git a/README.md b/README.md index 0ec0676..e43c489 100644 --- a/README.md +++ b/README.md @@ -6,9 +6,7 @@ This project contains some useful hooks for https://pre-commit.com. The `terraform_inputs_jenkins_pipeline_params` hook supports the definition of a [Declarative Jenkins Pipeline](https://jenkins.io/doc/book/pipeline/syntax/#declarative-pipeline)'s [parameters](https://jenkins.io/doc/book/pipeline/syntax/#parameters) from your [Terraform Input Variables](https://www.terraform.io/intro/getting-started/variables.html). -*Note:* -1. Requires [segmentio/terraform-docs](https://github.com/segmentio/terraform-docs) >= v0.4.0. -2. Requires [terraform-docs12](https://raw.githubusercontent.com/marcuscaisey/.dotfiles/master/scripts/terraform-docs12) +*Note:* Requires [segmentio/terraform-docs](https://github.com/segmentio/terraform-docs) >= v0.8.0. ### Sample Usage @@ -17,7 +15,7 @@ The `terraform_inputs_jenkins_pipeline_params` hook supports the definition of a ``` repos: - repo: git://github.com/getcloudnative/pre-commit-hooks - rev: v1.2.0 + rev: v1.4.0 hooks: - id: terraform_inputs_jenkins_pipeline_params ``` @@ -46,7 +44,7 @@ pipeline { The `terraform_inputs_jenkins_pipeline_params` hook supports the creation of a [terraform.tfvars.json](https://www.terraform.io/intro/getting-started/variables.html#from-a-file) based on your [Terraform Input Variables](https://www.terraform.io/intro/getting-started/variables.html), with values provided by the Jenkins Pipeline parameters' arguments. -*Note:* Requires [segmentio/terraform-docs](https://github.com/segmentio/terraform-docs) >= v0.4.0. +*Note:* Requires [segmentio/terraform-docs](https://github.com/segmentio/terraform-docs) >= v0.8.0. ### Sample Usage @@ -55,7 +53,7 @@ The `terraform_inputs_jenkins_pipeline_params` hook supports the creation of a [ ``` repos: - repo: git://github.com/getcloudnative/pre-commit-hooks - rev: v1.2.0 + rev: v1.4.0 hooks: - id: terraform_inputs_jenkins_pipeline_params ``` diff --git a/pre_commit_hooks/terraform_inputs_jenkins_pipeline_params.py b/pre_commit_hooks/terraform_inputs_jenkins_pipeline_params.py index 68026b3..bb9b882 100644 --- a/pre_commit_hooks/terraform_inputs_jenkins_pipeline_params.py +++ b/pre_commit_hooks/terraform_inputs_jenkins_pipeline_params.py @@ -19,9 +19,9 @@ def get_terraform_input_vars(terraform_files): try: - raw_json = subprocess.check_output(['terraform-docs12', '--no-sort', '--with-aggregate-type-defaults', 'json'] + terraform_files) + raw_json = subprocess.check_output(['terraform-docs', '--no-sort', 'json', '.']) except subprocess.CalledProcessError: - raw_json = '{ "Inputs": [] }' + raw_json = '{ "inputs": [] }' return json.loads(raw_json) @@ -29,45 +29,45 @@ def process_terraform_input_vars(visitor, terraform_files): json = get_terraform_input_vars(terraform_files) result = [] - for input in json['Inputs']: + for input in json['inputs']: result.append(visitor(input)) return result def transform_terraform_input_var_to_jenkinsfile_param(input): - result = 'string(name: "' + input['Name'] + '"' + result = 'string(name: "' + input['name'] + '"' - if input['Default'] is not None: - if type(input['Default']) == dict: + if input['default'] is not None: + if type(input['default']) == dict: # Was a default value provided? - if input['Default']['Value'] != '': + if input['default']['Value'] != '': result += ", defaultValue: '" # Is it a complex value? - if type(input['Default']['Value']) in [dict, list]: - result += json.dumps(input['Default']['Value']) + if type(input['default']['Value']) in [dict, list]: + result += json.dumps(input['default']['Value']) else: - result += input['Default']['Value'] + result += input['default']['Value'] result += "'" else: - if input['Type'] == 'list': + if input['type'] == 'list': result += ", defaultValue: '[]'" - elif input['Type'] == 'map': + elif input['type'] == 'map': result += ", defaultValue: '{}'" else: - result += ", defaultValue: '%s'" % input['Default'] + result += ", defaultValue: '%s'" % input['default'] - if input['Description'] is not None: - result += ', description: "%s"' % input['Description'] + if input['description'] is not None: + result += ', description: "%s"' % input['description'] result += ')' return result def transform_terraform_input_var_to_tfvars_json(input): - name = input['Name'] + name = input['name'] result = 'tfvars.%s = ' % name - if input['Type'] in ['list', 'map']: + if input['type'] in ['list', 'map']: result += 'readJSON text: ' result += 'params.' + name