adds sql formatter

This commit is contained in:
Timothy Sweetser 2019-01-04 17:30:33 -05:00
parent d4b887a69e
commit 087a963817
2 changed files with 40 additions and 0 deletions

35
pre_commit_hooks/format_sql.py Executable file
View file

@ -0,0 +1,35 @@
import sys
import click
import os
import sqlparse
options = {"keyword_case": "upper", "comma_first": True}
def reformat(sql_file):
with open(sql_file, "r") as f:
original = f.read()
new = sqlparse.format(original, **options)
with open(sql_file, "w") as f:
f.write(new)
if new == original:
return 0
else:
return 1
@click.command()
@click.option('--directory', required=True)
def main(directory):
res = 0
for root, dirs, files in os.walk(directory):
for f in files:
if f.split('.')[-1] == 'sql':
res = max(res, reformat(os.path.join(root, f)))
print(f"reformatted {f}")
return res
if __name__ == "__main__":
sys.exit(main())