mirror of https://github.com/ansible/ansible.git
unarchive: use Python's tarfile module for tar listing (#3575)
* unarchive: use Python's tarfile module for tar listing fixes https://github.com/ansible/ansible/issues/11348 Depending on the current active locale, `tar`'s file listing can end up spitting backslash-escaped characters. Unfortunately, when that happens, we end up with double-escaped backslashes, giving us a wrong path, making our action fail. We could try un-double-escaping our paths, but that would be complicated and, I think, error-prone. The easiest way forward seemed to simply use the `tarfile` module. Why use it only for listing? Because the `unarchive` option also supports the `extra_opts` option, and that supporting this would require us to mimick `tar`'s interface. For listing files, however, I don't think that the loss of `extra_opts` support causes problems (well, I hope so). * unarchive: re-add xz decompression support Following previous change to use Python's `tarfile` module for tar file listing, we lost `xz` decompression support. This commits re-add it by adding a special case in `TarXzArchive` that pre-decompresses the source file.reviewable/pr18780/r1
parent
2b36edd55c
commit
82aeaed45d
Loading…
Reference in New Issue