[diffoscope] 02/05: comparators: utils: container: added get_path_name method

Juliana Oliveira R jwnx-guest at moszumanska.debian.org
Sat Sep 16 17:43:11 CEST 2017


This is an automated email from the git hooks/post-receive script.

jwnx-guest pushed a commit to branch jwnx_fix_different_container_type_comparison
in repository diffoscope.

commit 24bc3210eba5193b6a6cf9efe92c53da89ccc769
Author: Juliana Oliveira Rodrigues <juliana.orod at gmail.com>
Date:   Sat Sep 16 12:20:50 2017 -0300

    comparators: utils: container: added get_path_name method
    
    The destination path for container extraction was generated by joining
    directory's name and filenames recursively. When those names are too long
    or recursion depth is too high, destination path may exceed OS's max
    filename length.
    
    This patch adds a new method for Container class called get_path_name,
    which returns a joint between destination directory and an uuid hash.
    It sets filename length to 36 characters.
---
 diffoscope/comparators/utils/container.py | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/diffoscope/comparators/utils/container.py b/diffoscope/comparators/utils/container.py
index 5627f5b..c076813 100644
--- a/diffoscope/comparators/utils/container.py
+++ b/diffoscope/comparators/utils/container.py
@@ -18,6 +18,8 @@
 # along with diffoscope.  If not, see <https://www.gnu.org/licenses/>.
 
 import abc
+import uuid
+import os.path
 import logging
 import itertools
 from collections import OrderedDict
@@ -66,6 +68,9 @@ class Container(object, metaclass=abc.ABCMeta):
     def get_member(self, member_name):
         raise NotImplementedError()
 
+    def get_path_name(self, dest_dir):
+      return os.path.join(dest_dir, str(uuid.uuid4()))
+
     def get_filtered_members(self):
         # If your get_member implementation is O(n) then this will be O(n^2)
         # cost. In such cases it is HIGHLY RECOMMENDED to override this as well

-- 
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/reproducible/diffoscope.git


More information about the diffoscope mailing list