packageinfo.bbclass 925 B

12345678910111213141516171819202122
  1. python packageinfo_handler () {
  2. import oe.packagedata
  3. pkginfolist = []
  4. pkgdata_dir = e.data.getVar("PKGDATA_DIR", True) + '/runtime/'
  5. if os.path.exists(pkgdata_dir):
  6. for root, dirs, files in os.walk(pkgdata_dir):
  7. for pkgname in files:
  8. if pkgname.endswith('.packaged'):
  9. pkgname = pkgname[:-9]
  10. pkgdatafile = root + pkgname
  11. try:
  12. sdata = oe.packagedata.read_pkgdatafile(pkgdatafile)
  13. sdata['PKG'] = pkgname
  14. pkginfolist.append(sdata)
  15. except Exception as e:
  16. bb.warn("Failed to read pkgdata file %s: %s: %s" % (pkgdatafile, e.__class__, str(e)))
  17. bb.event.fire(bb.event.PackageInfo(pkginfolist), e.data)
  18. }
  19. addhandler packageinfo_handler
  20. packageinfo_handler[eventmask] = "bb.event.RequestPackageInfo"