summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rwxr-xr-xsummain3
-rw-r--r--summainlib.py2
-rw-r--r--summainlib_tests.py22
3 files changed, 16 insertions, 11 deletions
diff --git a/summain b/summain
index 99719d6..6cee168 100755
--- a/summain
+++ b/summain
@@ -44,6 +44,7 @@ class Summain(cliapp.Application):
def process_args(self, args):
relative = self.settings['relative-paths']
+ exclude = self.settings['exclude']
nn = summainlib.NumberNormalizer()
if self.settings['mangle-paths']:
pn = summainlib.PathNormalizer()
@@ -51,7 +52,7 @@ class Summain(cliapp.Application):
pn = summainlib.SamePath()
for root in args:
for filename in self.files(root):
- o = summainlib.FilesystemObject(filename, nn, pn)
+ o = summainlib.FilesystemObject(filename, nn, pn, exclude)
self.output.write(o.format(root if relative else None))
self.output.write('\n')
diff --git a/summainlib.py b/summainlib.py
index 50e0a6e..e09e49c 100644
--- a/summainlib.py
+++ b/summainlib.py
@@ -159,7 +159,7 @@ class FilesystemObject(object):
'''
- def __init__(self, filename, nn, pn, stat_result=None, sha1=None,
+ def __init__(self, filename, nn, pn, exclude, stat_result=None, sha1=None,
open_file=None, readlink=None):
stat_result = stat_result or os.lstat(filename)
sha1 = sha1 or hashlib.sha1()
diff --git a/summainlib_tests.py b/summainlib_tests.py
index c0a261f..8cbe86a 100644
--- a/summainlib_tests.py
+++ b/summainlib_tests.py
@@ -78,15 +78,17 @@ class FilesystemObjectTests(unittest.TestCase):
self.nn = summainlib.NumberNormalizer()
self.pn = summainlib.SamePath()
+ self.exclude = []
def new(self, name, mode=None):
if mode is not None:
self.st.st_mode = mode
- return summainlib.FilesystemObject(name, self.nn, self.pn,
- stat_result=self.st,
- sha1=FakeSha1(),
- open_file=FakeOpenFile(),
- readlink=FakeReadlink(self))
+ return summainlib.FilesystemObject(name, self.nn, self.pn,
+ self.exclude,
+ stat_result=self.st,
+ sha1=FakeSha1(),
+ open_file=FakeOpenFile(),
+ readlink=FakeReadlink(self))
def test_formats_simple_name_identically(self):
self.assertEqual(self.new('foo')['Name'], 'foo')
@@ -178,6 +180,7 @@ class FilesystemObjectNormalizedNumbersTests(unittest.TestCase):
self.dev = 0
self.nn = summainlib.NumberNormalizer()
self.pn = summainlib.SamePath()
+ self.exclude = []
def reset(self):
self.dev += 1
@@ -189,10 +192,11 @@ class FilesystemObjectNormalizedNumbersTests(unittest.TestCase):
st_uid=0, st_gid=0)
self.ino += 1
return summainlib.FilesystemObject(name, self.nn, self.pn,
- stat_result=st,
- sha1=FakeSha1(),
- open_file=FakeOpenFile(),
- readlink=FakeReadlink(self))
+ self.exclude,
+ stat_result=st,
+ sha1=FakeSha1(),
+ open_file=FakeOpenFile(),
+ readlink=FakeReadlink(self))
def test_inode_numbers_are_repeatable(self):
a1 = self.new('foo')