summaryrefslogtreecommitdiffstats
path: root/lib/bb/fetch2/__init__.py
diff options
context:
space:
mode:
authorSaul Wold <sgw@linux.intel.com>2011-02-09 14:30:29 -0800
committerRichard Purdie <richard.purdie@linuxfoundation.org>2011-02-10 23:55:30 +0000
commitdb2abcd6416608054d66e11e17a9f2204999750e (patch)
tree912f461fdff9b9fde17e4858862efbfcf97b98f6 /lib/bb/fetch2/__init__.py
parente7534cb70a9d4eee841d551fa5c1b104424add22 (diff)
downloadbitbake-db2abcd6416608054d66e11e17a9f2204999750e.tar.gz
fetch2: Correct the clean() mechanism for the fetcher2 code
This create a clean() method in each of the fetcher modules and correctly cleans the .done stamp file and lock files (From Poky rev: 14dea89521c0c648e8e543388096a6dcd6d4f2e0) Signed-off-by: Saul Wold <sgw@linux.intel.com> Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'lib/bb/fetch2/__init__.py')
-rw-r--r--lib/bb/fetch2/__init__.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/lib/bb/fetch2/__init__.py b/lib/bb/fetch2/__init__.py
index ef9d75f3f..1ec42717f 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