Make parsing more reliable#1
Merged
Merged
Conversation
An interactive shell may have additional output depending on the user's shell configuration. Insert a marker and extract the value via this marker to make sure that only the actual "$PATH" content is returned.
Owner
|
Thanks. The ideal, of course, would be to make the sub-shell non-interactive, but people would be confused when settings in their .bashrc were ignored... sigh. |
Contributor
Author
|
Initially I thought about removing |
Owner
|
That might be why I originally had the |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
exec-path-from-getenvisn't reliable, because it assumes that the$PATHis the only output of the subprocess. A shell however may emit more output from the user's shell configuration files, i.e. a welcome message fromfortuneor something the like of. In such cases,exec-pathand$PATHare spoiled and become useless, because arbitrary strings end up there.This patch is my attempt to fix this short-coming. I insert a marker string (
__RESULT=) into theechocommand, and search the output of the subprocess for this marker.I've also replaced
shell-command-to-stringwith a direct call tocall-processbecause it's somewhat absurd to use a shell to spawn the shell ;)