Jonas Borgström пре 14 година
родитељ
комит
5fd716bb92
2 измењених фајлова са 11 додато и 4 уклоњено
  1. 6 4
      dedupestore/archive.py
  2. 5 0
      dedupestore/helpers.py

+ 6 - 4
dedupestore/archive.py

@@ -9,7 +9,7 @@ import sys
 
 from . import NS_ARCHIVE_METADATA, NS_ARCHIVE_ITEMS, NS_ARCHIVE_CHUNKS, NS_CHUNK
 from .chunkifier import chunkify
-from .helpers import uid2user, user2uid, gid2group, group2gid, IntegrityError
+from .helpers import uid2user, user2uid, gid2group, group2gid, IntegrityError, mod_to_str
 
 CHUNK_SIZE = 55001
 
@@ -90,13 +90,15 @@ class Archive(object):
         return osize, csize, usize
 
     def list(self):
+        tmap = dict(FILE='-', DIRECTORY='d', SYMLINK='l')
         self.get_items()
         for item in self.items:
-            mode = str(item['mode'])
+            type = tmap[item['type']]
+            mode = mod_to_str(item['mode'])
             size = item.get('size', 0)
             mtime = datetime.fromtimestamp(item['mtime'])
-            print '%s %-6s %-6s %8d %s %s' % (mode, item['user'], item['group'],
-                                              size, mtime, item['path'])
+            print '%s%s %-6s %-6s %8d %s %s' % (type, mode, item['user'],
+                                              item['group'], size, mtime, item['path'])
 
     def extract(self, dest=None):
         self.get_items()

+ 5 - 0
dedupestore/helpers.py

@@ -2,6 +2,7 @@ import argparse
 import grp
 import logging
 import pwd
+import stat
 import re
 
 
@@ -120,3 +121,7 @@ def pretty_size(v):
         return str(v)
 
 
+def mod_to_str(mod):
+    def x(v):
+        return ''.join(v & m and s or '-' for m, s in ((4, 'r'), (2, 'w'), (1, 'x')))
+    return '%s%s%s' % (x(mod / 64), x(mod / 8), x(mod))