62 lines
2.2 KiB
Python
62 lines
2.2 KiB
Python
#!/usr/bin/env python
|
|
# ex:ts=4:sw=4:sts=4:et
|
|
# -*- tab-width: 4; c-basic-offset: 4; indent-tabs-mode: nil -*-
|
|
"""
|
|
BitBake 'Fetch' implementations
|
|
|
|
Classes for obtaining upstream sources for the
|
|
BitBake build tools.
|
|
|
|
Copyright (C) 2003, 2004 Chris Larson
|
|
|
|
This program is free software; you can redistribute it and/or modify it under
|
|
the terms of the GNU General Public License as published by the Free Software
|
|
Foundation; either version 2 of the License, or (at your option) any later
|
|
version.
|
|
|
|
This program is distributed in the hope that it will be useful, but WITHOUT
|
|
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
|
|
FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
|
|
You should have received a copy of the GNU General Public License along with
|
|
this program; if not, write to the Free Software Foundation, Inc., 59 Temple
|
|
Place, Suite 330, Boston, MA 02111-1307 USA.
|
|
|
|
Based on functions from the base bb module, Copyright 2003 Holger Schurig
|
|
"""
|
|
|
|
import os, re
|
|
import bb
|
|
from bb import data
|
|
from bb.fetch import Fetch
|
|
|
|
class Local(Fetch):
|
|
def supports(url, d):
|
|
"""Check to see if a given url can be fetched in the local filesystem.
|
|
Expects supplied url in list form, as outputted by bb.decodeurl().
|
|
"""
|
|
(type, host, path, user, pswd, parm) = bb.decodeurl(data.expand(url, d))
|
|
return type in ['file','patch']
|
|
supports = staticmethod(supports)
|
|
|
|
def localpath(url, d):
|
|
"""Return the local filename of a given url assuming a successful fetch.
|
|
"""
|
|
path = url.split("://")[1]
|
|
newpath = path
|
|
if path[0] != "/":
|
|
filespath = data.getVar('FILESPATH', d, 1)
|
|
if filespath:
|
|
newpath = bb.which(filespath, path)
|
|
if not newpath:
|
|
filesdir = data.getVar('FILESDIR', d, 1)
|
|
if filesdir:
|
|
newpath = os.path.join(filesdir, path)
|
|
return newpath
|
|
localpath = staticmethod(localpath)
|
|
|
|
def go(self, urls = []):
|
|
"""Fetch urls (no-op for Local method)"""
|
|
# no need to fetch local files, we'll deal with them in place.
|
|
return 1
|