From fcf590a86e4720a5abac3977c9d9b7a6958d6f44 Mon Sep 17 00:00:00 2001 From: Nirbheek Chauhan Date: Tue, 18 Jul 2023 22:06:32 +0530 Subject: [PATCH] git-hooks: Not all OSes ship Python 3 under "python" macOS doesn't, for instance. Use a shell script to detect which python to run, which is always available on all OSes due to how git is packaged on Windows. Part-of: --- scripts/git-hooks/multi-pre-commit.hook | 2 +- scripts/git-hooks/pre-commit-invoke-python.hook | 12 ++++++++++++ scripts/git-hooks/pre-commit-python.hook | 2 +- 3 files changed, 14 insertions(+), 2 deletions(-) create mode 100755 scripts/git-hooks/pre-commit-invoke-python.hook diff --git a/scripts/git-hooks/multi-pre-commit.hook b/scripts/git-hooks/multi-pre-commit.hook index a5ccf1fd27..bf05bb3e17 100755 --- a/scripts/git-hooks/multi-pre-commit.hook +++ b/scripts/git-hooks/multi-pre-commit.hook @@ -15,7 +15,7 @@ # commit. They are executed in the order in which they are listed. ########################################################### -HOOKS="scripts/git-hooks/pre-commit.hook scripts/git-hooks/pre-commit-python.hook" +HOOKS="scripts/git-hooks/pre-commit.hook scripts/git-hooks/pre-commit-invoke-python.hook" # exit on error set -e diff --git a/scripts/git-hooks/pre-commit-invoke-python.hook b/scripts/git-hooks/pre-commit-invoke-python.hook new file mode 100755 index 0000000000..c0994484c8 --- /dev/null +++ b/scripts/git-hooks/pre-commit-invoke-python.hook @@ -0,0 +1,12 @@ +#!/bin/sh + +PYTHON="python3" +if [[ $OS =~ Windows ]]; then + if type -p py &>/dev/null; then + PYTHON="py -3" + elif type -p python &>/dev/null; then + PYTHON="python" + fi +fi + +$PYTHON "`dirname $0`/pre-commit-python.hook" diff --git a/scripts/git-hooks/pre-commit-python.hook b/scripts/git-hooks/pre-commit-python.hook index 57452226c4..15ed76566f 100755 --- a/scripts/git-hooks/pre-commit-python.hook +++ b/scripts/git-hooks/pre-commit-python.hook @@ -1,4 +1,4 @@ -#!/usr/bin/env python +#!/usr/bin/env python3 import os import subprocess import sys