Fix handling of venv bash activation scripts #36
Merged
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.
The regular expression used to capture the venv's path in a bash activation script was capturing too much. This caused the rewrite that happens during relocate to leave an instance of original path but only in a branch of bash code that is activated when running on Windows.
This patch fixes a bug that was actually present in all regular expressions used to find paths in activation scripts. The bug was previously benign because all virtualenv activation scripts and all but the bash script for venv contain exactly one instance of the matched path which was correctly changed during relocation. Now all scripts use an improved pattern and will automatically handle multiple path instances if they appear over time.