forked from github/pre-commit-opentofu
56 lines
1.8 KiB
Python
56 lines
1.8 KiB
Python
import argparse
|
|
import os
|
|
import subprocess
|
|
import sys
|
|
|
|
|
|
def main(argv=None):
|
|
parser = argparse.ArgumentParser(
|
|
description="""Run terraform-docs on a set of files. Follows the standard convention of
|
|
pulling the documentation from main.tf in order to replace the entire
|
|
README.md file each time."""
|
|
)
|
|
parser.add_argument(
|
|
'--dest', dest='dest', default='README.md',
|
|
)
|
|
parser.add_argument(
|
|
'--sort-inputs-by-required', dest='sort', action='store_true',
|
|
help='[deprecated] use --sort-by-required instead',
|
|
)
|
|
parser.add_argument(
|
|
'--sort-by-required', dest='sort', action='store_true',
|
|
)
|
|
parser.add_argument(
|
|
'--with-aggregate-type-defaults', dest='aggregate', action='store_true',
|
|
help='[deprecated]',
|
|
)
|
|
parser.add_argument('filenames', nargs='*', help='Filenames to check.')
|
|
args = parser.parse_args(argv)
|
|
|
|
dirs = []
|
|
for filename in args.filenames:
|
|
if (os.path.realpath(filename) not in dirs and
|
|
(filename.endswith(".tf") or filename.endswith(".tfvars"))):
|
|
dirs.append(os.path.dirname(filename))
|
|
|
|
retval = 0
|
|
|
|
for dir in dirs:
|
|
try:
|
|
procArgs = []
|
|
procArgs.append('terraform-docs')
|
|
if args.sort:
|
|
procArgs.append('--sort-by-required')
|
|
procArgs.append('md')
|
|
procArgs.append("./{dir}".format(dir=dir))
|
|
procArgs.append('>')
|
|
procArgs.append("./{dir}/{dest}".format(dir=dir, dest=args.dest))
|
|
subprocess.check_call(" ".join(procArgs), shell=True)
|
|
except subprocess.CalledProcessError as e:
|
|
print(e)
|
|
retval = 1
|
|
return retval
|
|
|
|
|
|
if __name__ == '__main__':
|
|
sys.exit(main())
|