use a temporary workdir during bundle creation #1425
Merged
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.
Currently, we modify and add files in the input directory. While this
isn't much of a problem now, we will need to delete converted files when
converting tar archives to file trees in the context of artifacts. That
would require the user to always re-create the bundle input directory
after running 'rauc bundle', which would be annoying.
It seems the simplest way is to hard-link all files from the input dir
to a .rauc-workdir subdirectory. This way, we don't need actually copy
any data and keep the rest of the bundle creation code unaffected.
For simplicity, we abort on anything in the input dir which is not a
regular file. If someone relies on the old (undocumented) behaviour of
including directories and symlinks in the bundle, please contact us.