# HG changeset patch # User brett # Date 1166362232 18000 # Node ID 920417b8acc9bff73e55c72e2ded8cc6e91e3414 # Parent 97388f5ff770108021d7eadae63cccb19806a5bc [svn] Fix issues with basename methods. First, string's rsplit method only arrived in Python 2.4, so don't use it. Second, tweak the RPM basename method to catch the case where arch == noarch. diff -r 97388f5ff770 -r 920417b8acc9 scripts/x --- a/scripts/x Mon Nov 13 23:06:30 2006 -0500 +++ b/scripts/x Sun Dec 17 08:30:32 2006 -0500 @@ -208,7 +208,7 @@ self.pipe(['rpm2cpio', '-'], "rpm2cpio") def basename(self): - pieces = os.path.basename(self.filename).rsplit('.', 2) + pieces = os.path.basename(self.filename).split('.') if len(pieces) == 1: return pieces[0] elif pieces[-1] != 'rpm': @@ -216,7 +216,7 @@ pieces.pop() if len(pieces) == 1: return pieces[0] - elif len(pieces[-1]) < 6: + elif len(pieces[-1]) < 8: pieces.pop() return '.'.join(pieces) @@ -233,12 +233,13 @@ self.pipe(['zcat'], "data.tar.gz decompression") def basename(self): - pieces = os.path.basename(self.filename).rsplit('_', 1) + pieces = os.path.basename(self.filename).split('_') if len(pieces) == 1: return pieces[0] - elif (len(pieces[-1]) > 10) or (not pieces[-1].endswith('.deb')): + last_piece = pieces.pop() + if (len(last_piece) > 10) or (not last_piece.endswith('.deb')): return BaseExtractor.basename(self) - return pieces[0] + return '_'.join(pieces) def check_contents(self): TarExtractor.check_contents(self)