1
0
mirror of https://github.com/openSUSE/osc.git synced 2025-02-25 19:52:12 +01:00

- add partname and fullpartname attributes to Pac() class

- cleanup partial files in case the user hits ctrl-c
This commit is contained in:
Marcus Hüwe 2009-07-15 19:48:16 +00:00
parent 964d921d39
commit 6492b73677
2 changed files with 16 additions and 16 deletions

View File

@ -140,8 +140,8 @@ class Pac:
self.mp['arch'] = node.get('arch') or self.mp['buildarch']
self.mp['extproject'] = node.get('project').replace(':', ':/')
self.mp['extrepository'] = node.get('repository').replace(':', ':/')
self.mp['extproject'] = node.get('project').replace(':', ':/')
self.mp['extrepository'] = node.get('repository').replace(':', ':/')
self.mp['repopackage'] = node.get('package') or '_repository'
self.mp['repoarch'] = node.get('repoarch') or self.mp['arch']
@ -153,12 +153,13 @@ class Pac:
self.mp['apiurl'] = apiurl
self.filename = '%(name)s-%(version)s-%(release)s.%(arch)s.%(pacsuffix)s' % self.mp
self.partname = '%s.part' % self.filename
self.mp['filename'] = self.filename
if self.mp['repopackage'] == '_repository':
self.mp['repofilename'] = self.mp['name']
else:
self.mp['repofilename'] = self.mp['filename']
if self.mp['repopackage'] == '_repository':
self.mp['repofilename'] = self.mp['name']
else:
self.mp['repofilename'] = self.mp['filename']
# make the content of the dictionary accessible as class attributes
self.__dict__.update(self.mp)
@ -174,7 +175,8 @@ class Pac:
# or if-modified-since, so the caching is simply name-based (on the assumption
# that the filename is suitable as identifier)
self.localdir = '%s/%s/%s/%s' % (cachedir, self.project, self.repository, self.arch)
self.fullfilename=os.path.join(self.localdir, self.filename)
self.fullfilename = os.path.join(self.localdir, self.filename)
self.fullpartname = os.path.join(self.localdir, self.partname)
self.url_local = 'file://%s/' % self.fullfilename
# first, add the local URL

View File

@ -68,7 +68,6 @@ class Fetcher:
MirrorGroup._join_url = join_url
mg = MirrorGroup(self.gr, pac.urllist)
partname = pac.fullfilename + ".part"
if self.http_debug:
print
@ -79,7 +78,7 @@ class Fetcher:
try:
# it returns the filename
ret = mg.urlgrab(pac.filename,
filename=partname,
filename = pac.fullpartname,
text = '(%s) %s' %(pac.project, pac.filename))
except URLGrabError, e:
@ -90,8 +89,8 @@ class Fetcher:
sys.exit(1)
if partname.endswith('.rpm.part'):
rpm_data = data_from_rpm(partname, 'Name:', 'Version:', 'Release:', 'Arch:', 'SourceRPM:', 'NoSource:', 'NoPatch:')
if pac.partname.endswith('.rpm.part'):
rpm_data = data_from_rpm(pac.fullpartname, 'Name:', 'Version:', 'Release:', 'Arch:', 'SourceRPM:', 'NoSource:', 'NoPatch:')
if rpm_data:
arch = rpm_data['Arch:']
if not rpm_data['SourceRPM:']:
@ -104,7 +103,7 @@ class Fetcher:
pac.filename = canonname
pac.fullfilename = os.path.join(head, canonname)
os.rename(partname, pac.fullfilename);
os.rename(pac.fullpartname, pac.fullfilename);
def dirSetup(self, pac):
dir = os.path.join(self.cachedir, pac.localdir)
@ -126,7 +125,6 @@ class Fetcher:
pass
else:
self.dirSetup(i)
try:
# if there isn't a progress bar, there is no output at all
if not self.progress_obj:
@ -136,9 +134,9 @@ class Fetcher:
except KeyboardInterrupt:
print 'Cancelled by user (ctrl-c)'
print 'Exiting.'
if os.path.exists(i.fullfilename):
print 'Cleaning up incomplete file', i.fullfilename
os.unlink(i.fullfilename)
if os.path.exists(i.fullpartname):
print 'Cleaning up incomplete file', i.fullpartname
os.unlink(i.fullpartname)
sys.exit(0)