mirror of
https://git.yoctoproject.org/git/poky
synced 2026-01-04 16:10:04 +00:00
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>
This commit is contained in:
parent
ab1dce9bd5
commit
fd4eca071c
63
scripts/contrib/verify-homepage.py
Executable file
63
scripts/contrib/verify-homepage.py
Executable file
|
|
@ -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
|
||||
Loading…
Reference in New Issue
Block a user