From 4fdff74130fc684300b720974610aeaaaeb10b05 Mon Sep 17 00:00:00 2001 From: Clemens Pollak Date: Mon, 29 Sep 2025 17:01:06 +0200 Subject: [PATCH 1/3] Allow relative paths in run_fastsurfer.sh --- run_fastsurfer.sh | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/run_fastsurfer.sh b/run_fastsurfer.sh index 98cf79203..36295c3c0 100755 --- a/run_fastsurfer.sh +++ b/run_fastsurfer.sh @@ -504,6 +504,48 @@ esac done set -- "${POSITIONAL[@]}" # restore positional parameters + +# Function to convert path to absolute if it exists and is not empty +convert_to_absolute_path() { + local var_name="$1" + local var_value="${!var_name}" + + if [[ -n "$var_value" ]]; then + if [[ -e "$var_value" ]] || [[ "$var_value" == *"/"* ]]; then + # Path exists or contains directory separators - convert to absolute + local abs_path + abs_path=$(realpath -m "$var_value" 2>/dev/null) + if [[ $? -eq 0 && -n "$abs_path" ]]; then + eval "$var_name=\"$abs_path\"" + else + echo "WARNING: Failed to convert $var_name to absolute path: $var_value" | tee -a "${tmpLF:-/dev/null}" + fi + fi + fi +} + +# Convert path variables to absolute paths +convert_to_absolute_path "sd" +convert_to_absolute_path "t1" +convert_to_absolute_path "t2" +convert_to_absolute_path "seg_log" +convert_to_absolute_path "conformed_name" +convert_to_absolute_path "norm_name" +convert_to_absolute_path "norm_name_t2" +convert_to_absolute_path "asegdkt_segfile" +convert_to_absolute_path "mask_name" +convert_to_absolute_path "merged_segfile" +convert_to_absolute_path "cereb_segfile" +convert_to_absolute_path "cereb_statsfile" +convert_to_absolute_path "hypo_segfile" +convert_to_absolute_path "hypo_statsfile" +convert_to_absolute_path "asegdkt_vinn_statsfile" +convert_to_absolute_path "aseg_vinn_statsfile" +convert_to_absolute_path "aseg_segfile" +convert_to_absolute_path "FS_LICENSE" + + + # make sure FastSurfer is in the PYTHONPATH export PYTHONPATH PYTHONPATH="$FASTSURFER_HOME$([[ -n "$PYTHONPATH" ]] && echo ":$PYTHONPATH")" From ccdb420a83a15c4e5a0157f424ffdf01405b908a Mon Sep 17 00:00:00 2001 From: ClePol Date: Mon, 29 Sep 2025 17:24:41 +0200 Subject: [PATCH 2/3] simplified for compatibility with older bash versions --- run_fastsurfer.sh | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/run_fastsurfer.sh b/run_fastsurfer.sh index 36295c3c0..6d61a7118 100755 --- a/run_fastsurfer.sh +++ b/run_fastsurfer.sh @@ -508,14 +508,15 @@ set -- "${POSITIONAL[@]}" # restore positional parameters # Function to convert path to absolute if it exists and is not empty convert_to_absolute_path() { local var_name="$1" - local var_value="${!var_name}" + local var_value + eval "var_value=\$$var_name" - if [[ -n "$var_value" ]]; then - if [[ -e "$var_value" ]] || [[ "$var_value" == *"/"* ]]; then + if [ -n "$var_value" ]; then + if [ -e "$var_value" ] || [ "${var_value#*/}" != "$var_value" ]; then # Path exists or contains directory separators - convert to absolute local abs_path - abs_path=$(realpath -m "$var_value" 2>/dev/null) - if [[ $? -eq 0 && -n "$abs_path" ]]; then + abs_path=$(realpath "$var_value" 2>/dev/null) + if [ $? -eq 0 ] && [ -n "$abs_path" ]; then eval "$var_name=\"$abs_path\"" else echo "WARNING: Failed to convert $var_name to absolute path: $var_value" | tee -a "${tmpLF:-/dev/null}" From e816cdd56771267d2aab782c1d74cd1ad1f29f16 Mon Sep 17 00:00:00 2001 From: Martin Reuter Date: Tue, 30 Sep 2025 14:04:32 +0200 Subject: [PATCH 3/3] remove space Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- run_fastsurfer.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/run_fastsurfer.sh b/run_fastsurfer.sh index 6d61a7118..7d1b749ac 100755 --- a/run_fastsurfer.sh +++ b/run_fastsurfer.sh @@ -515,7 +515,7 @@ convert_to_absolute_path() { if [ -e "$var_value" ] || [ "${var_value#*/}" != "$var_value" ]; then # Path exists or contains directory separators - convert to absolute local abs_path - abs_path=$(realpath "$var_value" 2>/dev/null) + abs_path=$(realpath "$var_value" 2>/dev/null) if [ $? -eq 0 ] && [ -n "$abs_path" ]; then eval "$var_name=\"$abs_path\"" else