diff options
author | Chong Lu <Chong.Lu@windriver.com> | 2014-06-25 17:39:44 +0800 |
---|---|---|
committer | Richard Purdie <richard.purdie@linuxfoundation.org> | 2014-07-03 17:41:17 +0100 |
commit | fd4eca071c8ee19420bd7c862df1d31e89c49f37 (patch) | |
tree | db746bc17bc9f4a654b506488a7a52ae161d9f32 /scripts | |
parent | ab1dce9bd593beff9b85482dda704529766beb6d (diff) | |
download | ast2050-yocto-poky-fd4eca071c8ee19420bd7c862df1d31e89c49f37.zip ast2050-yocto-poky-fd4eca071c8ee19420bd7c862df1d31e89c49f37.tar.gz |
scripts/contrib/verify-homepage.py: add a script to verify HOMEPAGE
Add a script to verify all the recipes' HOMEPAGE.
[YOCTO #5689]
(From OE-Core rev: 2dfb2ef06763cb6044dc1630875024e7310b3df4)
Signed-off-by: Chong Lu <Chong.Lu@windriver.com>
Signed-off-by: Richard Purdie <richard.purdie@linuxfoundation.org>
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/contrib/verify-homepage.py | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/scripts/contrib/verify-homepage.py b/scripts/contrib/verify-homepage.py new file mode 100755 index 0000000..86cc82b --- /dev/null +++ b/scripts/contrib/verify-homepage.py @@ -0,0 +1,63 @@ +#!/usr/bin/env python + +# This script is used for verify HOMEPAGE. +# The result is influenced by network environment, since the timeout of connect url is 5 seconds as default. + +import sys +import os +import subprocess +import urllib2 + +def search_bitbakepath(): + bitbakepath = "" + + # Search path to bitbake lib dir in order to load bb modules + if os.path.exists(os.path.join(os.path.dirname(sys.argv[0]), '../../bitbake/lib/bb')): + bitbakepath = os.path.join(os.path.dirname(sys.argv[0]), '../../bitbake/lib') + bitbakepath = os.path.abspath(bitbakepath) + else: + # Look for bitbake/bin dir in PATH + for pth in os.environ['PATH'].split(':'): + if os.path.exists(os.path.join(pth, '../lib/bb')): + bitbakepath = os.path.abspath(os.path.join(pth, '../lib')) + break + if not bitbakepath: + sys.stderr.write("Unable to find bitbake by searching parent directory of this script or PATH\n") + sys.exit(1) + return bitbakepath + +# For importing the following modules +sys.path.insert(0, search_bitbakepath()) +import bb.tinfoil + +def wgetHomepage(pn, homepage): + result = subprocess.call('wget ' + '-q -T 5 -t 1 --spider ' + homepage, shell = True) + if result: + bb.warn("Failed to verify HOMEPAGE (%s) of %s" % (homepage, pn)) + return 1 + else: + return 0 + +def verifyHomepage(bbhandler): + pkg_pn = bbhandler.cooker.recipecache.pkg_pn + pnlist = sorted(pkg_pn) + count = 0 + for pn in pnlist: + fn = pkg_pn[pn].pop() + data = bb.cache.Cache.loadDataFull(fn, bbhandler.cooker.collection.get_file_appends(fn), bbhandler.config_data) + homepage = data.getVar("HOMEPAGE") + if homepage: + try: + urllib2.urlopen(homepage, timeout=5) + except Exception: + count = count + wgetHomepage(pn, homepage) + return count + +if __name__=='__main__': + failcount = 0 + bbhandler = bb.tinfoil.Tinfoil() + bbhandler.prepare() + print "Start to verify HOMEPAGE:" + failcount = verifyHomepage(bbhandler) + print "finish to verify HOMEPAGE." + print "Summary: %s failed" % failcount |