Add a :preservenothing option to never persist build files #63
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
:preservenothing
flag. When set no build files will be persisted. This is important for our use case as we're using this gem to generate sensitive documents, so having the .tex files laying around after they're needed is a security concern, as well as being generally useful in environments where these files will never be read in any case.The main change is the work is now done in a Ruby
Dir.mktempdir
block that is always cleaned up. If:preservenothing
is falsy then thebasedir
is created and input.tex and input.log are copied to it to maintain existing behavior. If:preservenothing
is falsy and:preservework
is truthy then the tmpdir is copied to workdir to maintain existing behavior. If:preservenothing
is truthy then nothing is copied out of the tempdir which is automatically cleaned up by Ruby.The exception message changes when
:preservenothing
is truthy as there are no log files to check. When:preservenothing
is falsy a conscious effort was made to keep the gem behavior unchanged.