Add prettier yml example hook

This commit is contained in:
Sonny Bakker 2020-07-30 09:22:11 +02:00
parent 0704cf0237
commit c3135a4008

39
pre-commit.d/prettier-yml.py Executable file
View file

@ -0,0 +1,39 @@
#!/usr/bin/env python
import os
import subprocess
import sys
from shutil import which
file_extensions = (".yml", ".yaml",)
prettier = os.getenv("PRETTIER_BIN", "./node_modules/.bin/prettier")
options = ["--write"]
if not which(prettier):
sys.exit("Prettier binary not found")
diff = subprocess.check_output(
["git", "diff", "--cached", "--name-only", "--diff-filter", "ACM"],
universal_newlines=True
)
yaml_files = [
item for item in diff.splitlines() if item.endswith(file_extensions)
]
if not yaml_files:
sys.exit(0)
try:
output = subprocess.check_output(
[prettier, *options, *yaml_files],
universal_newlines=True,
stderr=subprocess.STDOUT
)
except subprocess.CalledProcessError as e:
print("Formatting was unsuccessful:")
sys.exit(e.stdout)
subprocess.run(["git", "add", "-u", *yaml_files])
sys.exit(0)