mirror of
https://github.com/tofuutils/pre-commit-opentofu.git
synced 2025-10-15 17:38:54 +02:00
67 lines
1.9 KiB
Python
67 lines
1.9 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|tofu) 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(".tofu")
|
|
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())
|