Prettier list output

This commit is contained in:
Jonas Borgström 2010-10-26 22:34:25 +02:00
parent e650e195e1
commit 5fd716bb92
2 changed files with 11 additions and 4 deletions

View File

@ -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()

View File

@ -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))