From 8963d5be4e57e6fd086b75686c0e55e286f2a1a5 Mon Sep 17 00:00:00 2001 From: gojimmypi Date: Fri, 10 May 2024 15:06:59 -0700 Subject: [PATCH] fix autogen.sh for WSL/Windows file link attempt --- autogen.sh | 35 +++++++++++++++++++++++++++++++---- 1 file changed, 31 insertions(+), 4 deletions(-) diff --git a/autogen.sh b/autogen.sh index 2ba18ae..7dc5ae3 100755 --- a/autogen.sh +++ b/autogen.sh @@ -5,12 +5,39 @@ set -e +# Check environment +if [ -n "$WSL_DISTRO_NAME" ]; then + # we found a non-blank WSL environment distro name + current_path="$(pwd)" + pattern="/mnt/?" + if [ "$(echo "$current_path" | grep -E "^$pattern")" ]; then + # if we are in WSL and shared Windows file system, 'ln' does not work. + no_links=true + else + no_links= + fi +fi + # Git hooks should come before autoreconf. if test -d .git; then - if ! test -d .git/hooks; then - mkdir .git/hooks - fi - ln -s -f ../../pre-commit.sh .git/hooks/pre-commit + if [ -n "$no_links" ]; then + echo "Linux ln does not work on shared Windows file system in WSL." + if [ ! -e .git/hooks/pre-commit ]; then + echo "The pre-commit.sh file will not be copied to .git/hooks/pre-commit" + # shell scripts do not work on Windows; TODO create equivalent batch file + # cp ./pre-commit.sh .git/hooks/pre-commit || exit $? + fi + if [ ! -e .git/hooks/pre-push ]; then + echo "The pre-push.sh file will not be copied to .git/hooks/pre-commit" + # shell scripts do not work on Windows; TODO create equivalent batch file + # cp ./pre-push.sh .git/hooks/pre-push || exit $? + fi + else + if ! test -d .git/hooks; then + mkdir .git/hooks + fi + ln -s -f ../../pre-commit.sh .git/hooks/pre-commit + fi fi # if get an error about libtool not setup