From 371b82fec7f49c15df48b7eea314aa693cfc3d17 Mon Sep 17 00:00:00 2001 From: Viet Nguyen Duc Date: Thu, 2 Oct 2025 13:30:05 +0700 Subject: [PATCH] Docker: Fix regression `SE_NODE_STEREOTYPE_EXTRA` could not merge stereotypes Signed-off-by: Viet Nguyen Duc --- NodeBase/generate_config | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/NodeBase/generate_config b/NodeBase/generate_config index 6aeef39b0..4946b8ff9 100755 --- a/NodeBase/generate_config +++ b/NodeBase/generate_config @@ -28,7 +28,8 @@ function backup_original_env_vars() { # Backup original value if not already backed up if [[ -z "${!backup_var}" ]] && [[ -n "${!common_var}" ]]; then - eval "${backup_var}=\"${!common_var}\"" + # Use printf -v to avoid eval and preserve quotes verbatim + printf -v "$backup_var" '%s' "${!common_var}" echo "Backed up original ${common_var}=${!common_var} to ${backup_var}" fi done @@ -43,11 +44,11 @@ function restore_original_env_vars() { # Restore original value if backup exists if [[ -n "${!backup_var}" ]]; then - eval "${common_var}=\"${!backup_var}\"" + printf -v "$common_var" '%s' "${!backup_var}" echo "Restored original ${backup_var}=${!backup_var} to ${common_var}" else # Clear the variable if no backup exists - eval "${common_var}=\"\"" + printf -v "$common_var" '%s' "" echo "Cleared ${common_var} (no original backup)" fi done @@ -64,12 +65,12 @@ function assign_browser_specific_env_vars() { # Check if the browser-specific environment variable exists if [[ -n "${!browser_specific_var}" ]]; then - # Assign the browser-specific value to the common variable - eval "${common_var}=\"${!browser_specific_var}\"" + # Assign the browser-specific value to the common variable, preserving quotes + printf -v "$common_var" '%s' "${!browser_specific_var}" echo "Assigned ${browser_specific_var}=${!browser_specific_var} to ${common_var}" elif [[ -n "${!backup_var}" ]]; then # Inherit original value if browser-specific value is not set - eval "${common_var}=\"${!backup_var}\"" + printf -v "$common_var" '%s' "${!backup_var}" echo "Inherited original ${backup_var}=${!backup_var} to ${common_var}" fi done @@ -178,6 +179,10 @@ if [ -d "/opt/selenium/browsers" ]; then echo "[[node.driver-configuration]]" >>"$FILENAME" echo "display-name = \"${SE_NODE_BROWSER_NAME}\"" >>"$FILENAME" echo "stereotype = '${SE_NODE_STEREOTYPE}'" >>"$FILENAME" + # Validate SE_NODE_MAX_SESSIONS is a positive integer + if [[ "${SE_NODE_MAX_SESSIONS}" =~ ^[0-9]+$ ]] && [[ "${SE_NODE_MAX_SESSIONS}" -gt 0 ]]; then + echo "max-sessions = ${SE_NODE_MAX_SESSIONS}" >>"$FILENAME" + fi echo "" >>"$FILENAME" fi