fix: properly quote shellFunctionsFile path when constructing shell commands #4962
+1
−1
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Problem
The
shellFunctionsFile
configuration parameter was not being properly quoted when constructing shell commands, causing issues with shells like Fish when the file path contains spaces or special characters.Example of failing command:
Error output:
Root Cause
In
pkg/commands/oscommands/cmd_obj_builder.go
, line 49 was constructing the shell command without quoting theshellFunctionsFile
path:This results in unquoted paths being passed to the shell, which breaks when paths contain spaces or special characters.
Solution
The fix uses the existing
Quote()
method to properly quote theshellFunctionsFile
path:After the fix, the command becomes:
/opt/homebrew/bin/fish -c "source \"/path with spaces/config.fish\""
Testing
Quote()
methodConfiguration Example
This fix resolves issues for users with configurations like:
Where the path might contain spaces or be located in directories with special characters.
Impact
Quote()
method) already used throughout the codebase