From 73486f2efc32e06cada25b085ae1ba8c779f28b6 Mon Sep 17 00:00:00 2001 From: Jakub Styczen Date: Tue, 15 Sep 2026 21:51:25 +0200 Subject: [PATCH] feat: resolve relative GAUGE_PYTHON_COMMAND against project root Resolve relative paths in GAUGE_PYTHON_COMMAND against GAUGE_PROJECT_ROOT, consistent with how STEP_IMPL_DIR is already resolved in util.py. This enables setting GAUGE_PYTHON_COMMAND to paths like .venv/bin/python or .venv\Scripts\python in python.properties without requiring an absolute path. Fixes #485 Signed-off-by: Jakub Styczen --- start.bat | 16 ++++++++++++++++ start.sh | 11 +++++++++++ 2 files changed, 27 insertions(+) diff --git a/start.bat b/start.bat index d1e7292..aa1eca3 100644 --- a/start.bat +++ b/start.bat @@ -1,4 +1,20 @@ @echo off IF "%GAUGE_PYTHON_COMMAND%"=="" (SET GAUGE_PYTHON_COMMAND=python) + +REM Resolve relative paths against the project root +IF "%GAUGE_PROJECT_ROOT%"=="" GOTO :run +IF "%GAUGE_PYTHON_COMMAND:~1,1%"==":" GOTO :run +SETLOCAL ENABLEDELAYEDEXPANSION +SET "_CMD=!GAUGE_PYTHON_COMMAND!" +SET "_STRIPPED=!_CMD:\=!" +SET "_STRIPPED=!_STRIPPED:/=!" +IF "!_STRIPPED!"=="!_CMD!" ( + ENDLOCAL + GOTO :run +) +ENDLOCAL +SET "GAUGE_PYTHON_COMMAND=%GAUGE_PROJECT_ROOT%\%GAUGE_PYTHON_COMMAND%" + +:run "%GAUGE_PYTHON_COMMAND%" check_and_install_getgauge.py "%GAUGE_PYTHON_COMMAND%" -u start.py %1 diff --git a/start.sh b/start.sh index f24ea50..62a55d7 100755 --- a/start.sh +++ b/start.sh @@ -4,6 +4,17 @@ set -e if [ -z "$GAUGE_PYTHON_COMMAND" ]; then GAUGE_PYTHON_COMMAND="python" fi + +# Resolve relative paths against the project root +case "$GAUGE_PYTHON_COMMAND" in + /* ) ;; + */* ) + if [ -n "$GAUGE_PROJECT_ROOT" ]; then + GAUGE_PYTHON_COMMAND="$GAUGE_PROJECT_ROOT/$GAUGE_PYTHON_COMMAND" + fi + ;; +esac + ${GAUGE_PYTHON_COMMAND} check_and_install_getgauge.py ${GAUGE_PYTHON_COMMAND} -u start.py $1 \ No newline at end of file