Allow specifying at runtime which POSIX shell to use #3301
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.
We already have the
SHELL_PATH
variable, but that is a build-time setting.In Git for Windows' context, that is not good enough: we want to use the very same Git artifacts both in the regular MinGit flavor as well as in the BusyBox one.
So let's introduce support for the config setting
core.shell
, which is interpreted as the absolute path of the POSIX-compliant shell to use to execute hooks, scripted Git commands, complex aliases, etc.We also set the environment variable
SHELL
ifcore.shell
was configured. This helps the scenario where OpenSSH is called in a BusyBox variant of MinGit (which comes without any MSYS2 shell): OpenSSH looks at that variable to run commands such as ones specified via theProxyCommand
setting in the SSH config.Note: in the BusyBox variant of MinGit, we will want to set this in the system config, to a path relative to the runtime prefix. For that reason, we will need to address gitgitgadget#66 rather sooner than later, before going through with this here PR.