summaryrefslogtreecommitdiffstats
path: root/pre_commit/resources/hook-tmpl
diff options
context:
space:
mode:
Diffstat (limited to 'pre_commit/resources/hook-tmpl')
-rwxr-xr-xpre_commit/resources/hook-tmpl50
1 files changed, 13 insertions, 37 deletions
diff --git a/pre_commit/resources/hook-tmpl b/pre_commit/resources/hook-tmpl
index 299144e..53d29f9 100755
--- a/pre_commit/resources/hook-tmpl
+++ b/pre_commit/resources/hook-tmpl
@@ -1,44 +1,20 @@
-#!/usr/bin/env python3
+#!/usr/bin/env bash
# File generated by pre-commit: https://pre-commit.com
# ID: 138fd403232d2ddd5efb44317e38bf03
-import os
-import sys
-
-# we try our best, but the shebang of this script is difficult to determine:
-# - macos doesn't ship with python3
-# - windows executables are almost always `python.exe`
-# therefore we continue to support python2 for this small script
-if sys.version_info < (3, 3):
- from distutils.spawn import find_executable as which
-else:
- from shutil import which
-
-# work around https://github.com/Homebrew/homebrew-core/issues/30445
-os.environ.pop('__PYVENV_LAUNCHER__', None)
# start templated
-INSTALL_PYTHON = ''
-ARGS = ['hook-impl']
+INSTALL_PYTHON=''
+ARGS=(hook-impl)
# end templated
-ARGS.extend(('--hook-dir', os.path.realpath(os.path.dirname(__file__))))
-ARGS.append('--')
-ARGS.extend(sys.argv[1:])
-
-DNE = '`pre-commit` not found. Did you forget to activate your virtualenv?'
-if os.access(INSTALL_PYTHON, os.X_OK):
- CMD = [INSTALL_PYTHON, '-mpre_commit']
-elif which('pre-commit'):
- CMD = ['pre-commit']
-else:
- raise SystemExit(DNE)
-CMD.extend(ARGS)
-if sys.platform == 'win32': # https://bugs.python.org/issue19124
- import subprocess
+HERE="$(cd "$(dirname "$0")" && pwd)"
+ARGS+=(--hook-dir "$HERE" -- "$@")
- if sys.version_info < (3, 7): # https://bugs.python.org/issue25942
- raise SystemExit(subprocess.Popen(CMD).wait())
- else:
- raise SystemExit(subprocess.call(CMD))
-else:
- os.execvp(CMD[0], CMD)
+if [ -x "$INSTALL_PYTHON" ]; then
+ exec "$INSTALL_PYTHON" -mpre_commit "${ARGS[@]}"
+elif command -v pre-commit > /dev/null; then
+ exec pre-commit "${ARGS[@]}"
+else
+ echo '`pre-commit` not found. Did you forget to activate your virtualenv?' 1>&2
+ exit 1
+fi