diff options
Diffstat (limited to 'lib/bb/fetch2/__init__.py')
-rw-r--r-- | lib/bb/fetch2/__init__.py | 34 |
1 files changed, 34 insertions, 0 deletions
diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py index ef9d75f3..1ec42717 100644 --- a/lib/bb/fetch2/__init__.py +++ b/lib/bb/fetch2/__init__.py @@ -491,6 +491,7 @@ class FetchData(object): """ def __init__(self, url, d): # localpath is the location of a downloaded result. If not set, the file is local. + self.donestamp = None self.localfile = "" self.localpath = None self.lockfile = None @@ -717,6 +718,12 @@ class FetchMethod(object): return + def clean(self, urldata, d): + """ + Clean any existing full or partial download + """ + bb.utils.remove(urldata.localpath) + def try_premirror(self, url, urldata, d): """ Should premirrors be used? @@ -958,6 +965,33 @@ class Fetch(object): if ud.lockfile: bb.utils.unlockfile(lf) + def clean(self, urls = []): + """ + Clean files that the fetcher gets or places + """ + + if len(urls) == 0: + urls = self.urls + + for url in urls: + if url not in self.ud: + self.ud[url] = FetchData(url, d) + ud = self.ud[url] + ud.setup_localpath(self.d) + + if not ud.localfile or self.localpath is None: + continue + + if ud.lockfile: + lf = bb.utils.lockfile(ud.lockfile) + + ud.method.clean(ud, self.d) + if ud.donestamp: + bb.utils.remove(ud.donestamp) + + if ud.lockfile: + bb.utils.unlockfile(lf) + from . import cvs from . import git from . import local |