bitbake: fetch2/local.py: Provide better debug output when fetch of a local file fails
When a fetch failure occurs for a local file, this patch ensures we print the locations searched making it easier for the user to debug the problem. (Bitbake rev: a461adbc5f09b41c771a7603370f6f2d1299ae8e) Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
This commit is contained in:
parent
67bfb37475
commit
43a25fff55
|
@ -30,7 +30,8 @@ import urllib
|
||||||
import bb
|
import bb
|
||||||
import bb.utils
|
import bb.utils
|
||||||
from bb import data
|
from bb import data
|
||||||
from bb.fetch2 import FetchMethod
|
from bb.fetch2 import FetchMethod, FetchError
|
||||||
|
from bb.fetch2 import logger
|
||||||
|
|
||||||
class Local(FetchMethod):
|
class Local(FetchMethod):
|
||||||
def supports(self, url, urldata, d):
|
def supports(self, url, urldata, d):
|
||||||
|
@ -41,16 +42,15 @@ class Local(FetchMethod):
|
||||||
|
|
||||||
def urldata_init(self, ud, d):
|
def urldata_init(self, ud, d):
|
||||||
# We don't set localfile as for this fetcher the file is already local!
|
# We don't set localfile as for this fetcher the file is already local!
|
||||||
ud.basename = os.path.basename(urllib.unquote(ud.url.split("://")[1].split(";")[0]))
|
ud.decodedurl = urllib.unquote(ud.url.split("://")[1].split(";")[0])
|
||||||
|
ud.basename = os.path.basename(ud.decodedurl)
|
||||||
return
|
return
|
||||||
|
|
||||||
def localpath(self, url, urldata, d):
|
def localpath(self, url, urldata, d):
|
||||||
"""
|
"""
|
||||||
Return the local filename of a given url assuming a successful fetch.
|
Return the local filename of a given url assuming a successful fetch.
|
||||||
"""
|
"""
|
||||||
path = url.split("://")[1]
|
path = urldata.decodedurl
|
||||||
path = path.split(";")[0]
|
|
||||||
path = urllib.unquote(path)
|
|
||||||
newpath = path
|
newpath = path
|
||||||
if path[0] != "/":
|
if path[0] != "/":
|
||||||
filespath = data.getVar('FILESPATH', d, True)
|
filespath = data.getVar('FILESPATH', d, True)
|
||||||
|
@ -76,7 +76,20 @@ class Local(FetchMethod):
|
||||||
def download(self, url, urldata, d):
|
def download(self, url, urldata, d):
|
||||||
"""Fetch urls (no-op for Local method)"""
|
"""Fetch urls (no-op for Local method)"""
|
||||||
# no need to fetch local files, we'll deal with them in place.
|
# no need to fetch local files, we'll deal with them in place.
|
||||||
return 1
|
if self.supports_checksum(urldata) and not os.path.exists(urldata.localpath):
|
||||||
|
locations = []
|
||||||
|
filespath = data.getVar('FILESPATH', d, True)
|
||||||
|
if filespath:
|
||||||
|
locations = filespath.split(":")
|
||||||
|
filesdir = data.getVar('FILESDIR', d, True)
|
||||||
|
if filesdir:
|
||||||
|
locations.append(filesdir)
|
||||||
|
locations.append(d.getVar("DL_DIR", True))
|
||||||
|
|
||||||
|
msg = "Unable to find file " + url + " anywhere. The paths that were searched were:\n " + "\n ".join(locations)
|
||||||
|
raise FetchError(msg)
|
||||||
|
|
||||||
|
return True
|
||||||
|
|
||||||
def checkstatus(self, url, urldata, d):
|
def checkstatus(self, url, urldata, d):
|
||||||
"""
|
"""
|
||||||
|
|
Loading…
Reference in New Issue