Add a new command line argument to allow setting an optional build directory for .swifttemplates #1147
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.
what:
This adds a new command line argument to allow setting an optional build directory for .swifttemplates. When this is set the custom directory is used. If it's not set, then the system temp directory is used as before.
why:
As documented in 1142, when running several concurrent instances of sourcery there can be conflicts if they are all trying to write to the same temporary directory.
This scenario in which this happened for me is after creating a swift package manager plugin to generate mocks, and running that plugin on multiple targets within the same project or package file. This was causing build failures.
Allowing the plugin to set this new command line argument to its own work directory has resolved this issue as each target the plugin operates on has its own work directory.