From c3135a4008e5a985836eea49a85112dd3c6e5ff6 Mon Sep 17 00:00:00 2001 From: Sonny Bakker Date: Thu, 30 Jul 2020 09:22:11 +0200 Subject: [PATCH] Add prettier yml example hook --- pre-commit.d/prettier-yml.py | 39 ++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100755 pre-commit.d/prettier-yml.py diff --git a/pre-commit.d/prettier-yml.py b/pre-commit.d/prettier-yml.py new file mode 100755 index 0000000..a92f264 --- /dev/null +++ b/pre-commit.d/prettier-yml.py @@ -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)