diff --git a/bin/disinto b/bin/disinto index 4970b4c..5bfff27 100755 --- a/bin/disinto +++ b/bin/disinto @@ -2745,7 +2745,10 @@ disinto_hire_an_agent() { else # Store token in .env under the role-specific variable name if grep -q "^${token_var}=" "$env_file" 2>/dev/null; then - sed -i "s|^${token_var}=.*|${token_var}=${agent_token}|" "$env_file" + # Use sed with alternative delimiter and proper escaping for special chars in token + local escaped_token + escaped_token=$(printf '%s\n' "$agent_token" | sed 's/[&/\]/\\&/g') + sed -i "s|^${token_var}=.*|${token_var}=${escaped_token}|" "$env_file" echo " ${agent_name} token updated (${token_var})" else printf '%s=%s\n' "$token_var" "$agent_token" >> "$env_file"