diff --git a/.gitignore b/.gitignore index df9689b..27e94df 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ vim/tmp/ vim/tmp/viminfo.* .DS_Store vim/view/ +.pre_commit_env/ diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..7ee6c81 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,12 @@ +--- +repos: + - repo: https://github.com/pre-commit/pre-commit-hooks + rev: v1.2.3 + hooks: + - id: trailing-whitespace + - id: end-of-file-fixer + # After merging, this should change to the upstream and point to master + - repo: https://github.com/ViViDboarder/vint + rev: pre-commit-support + hooks: + - id: vint diff --git a/Makefile b/Makefile index 7778583..1916e9b 100644 --- a/Makefile +++ b/Makefile @@ -1,3 +1,6 @@ +PRE_COMMIT_ENV ?= .pre_commit_env +PRE_COMMIT_ENV_BIN ?= $(PRE_COMMIT_ENV)/bin + .PHONY: default default: install @@ -21,3 +24,19 @@ uninstall: clean: rm -fr ./vim/plugged rm -fr ./vim/autoload/plug.vim + +# Installs pre-commit hooks +$(PRE_COMMIT_ENV): + virtualenv $(PRE_COMMIT_ENV) + +$(PRE_COMMIT_ENV_BIN)/pre-commit: $(PRE_COMMIT_ENV) + $(PRE_COMMIT_ENV_BIN)/pip install pre-commit + +.PHONY: install-hooks +install-hooks: $(PRE_COMMIT_ENV_BIN)/pre-commit + $(PRE_COMMIT_ENV_BIN)/pre-commit install-hooks + +# Checks files for encryption +.PHONY: check +check: $(PRE_COMMIT_ENV_BIN)/pre-commit + $(PRE_COMMIT_ENV_BIN)/pre-commit run --all-files