Support environment variables that persist beyond single commands #10
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.
This PR adds a new
Environment
class that is a collection of environment variables that are owned by theShell
. These are copied into an individual WASM command's environment before the command is run, and changes are copied back out again afterwards. The copying in occurs in thepreRun
callback of the WASM module's constructor, which is a better place for the file system setting up so that is moved there as well.Persistent environment variables are also required for builtin commands. A good example (the only builtin command so far) is
cd
which stores the current working directory in thePWD
envvar and this is explicitly tested in a new test.