Allow environment variables to override settings from foundry.toml #1122
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.
Foundry allows overriding settings inside the
foundry.tomlfile by defining environment variables.See: https://getfoundry.sh/config/reference/overview#environment-variables
This PR mimics the behavior in Kontrol.
Use case: I want to add the ability to run Kontrol from Simbolik. Since Simbolik frequently recompiles the codebase for different purposes (e.g. linting/testing/debugging) it's necessary to have different out folders for each case to avoid unexpected behaviors. For example, trying to debug a code that was compiled for linting will fail because the compilation artifacts lack essential debugging information. Additionally, recompiling for debugging shouldn't delete all Kontrol proofs.
The changes introduced in this PR, allow Simbolik to control the
outfolder via an environment variable. The idea is to have different out folders for each purpose, namelyout/simbolik,out/lint,out/test,out/coverage, andout/kontrol. The same principle is also applied to cache-folders.While this could be handled via different profiles inside the
foundry.toml, we cannot rely on the user to make these adjustments.