blob: d13cef6d609756e9c1324ac70cea86e7c1c512d5 [file] [log] [blame]
# -*- coding:utf-8 -*-
'''repoman/checks/ebuilds/misc.py
Miscelaneous ebuild check functions'''
from __future__ import print_function, unicode_literals
import re
# import our initialized portage instance
from repoman._portage import portage
pv_toolong_re = re.compile(r'[0-9]{19,}')
def bad_split_check(xpkg, y_ebuild, pkgdir, qatracker):
'''Checks for bad category/package splits.
@param xpkg: the pacakge being checked
@param y_ebuild: string of the ebuild name being tested
@param pkgdir: string: path
@param qatracker: QATracker instance
'''
myesplit = portage.pkgsplit(y_ebuild)
is_bad_split = myesplit is None or myesplit[0] != xpkg.split("/")[-1]
if is_bad_split:
is_pv_toolong = pv_toolong_re.search(myesplit[1])
is_pv_toolong2 = pv_toolong_re.search(myesplit[2])
if is_pv_toolong or is_pv_toolong2:
qatracker.add_error(
"ebuild.invalidname", xpkg + "/" + y_ebuild + ".ebuild")
return True
elif myesplit[0] != pkgdir:
print(pkgdir, myesplit[0])
qatracker.add_error(
"ebuild.namenomatch", xpkg + "/" + y_ebuild + ".ebuild")
return True
return False
def pkg_invalid(pkg, qatracker, ebuild):
'''Checks for invalid packages
@param pkg: _emerge.Package instance
@param qatracker: QATracker instance
@return boolean:
'''
if pkg.invalid:
for k, msgs in pkg.invalid.items():
for msg in msgs:
qatracker.add_error(k, "%s: %s" % (ebuild.relative_path, msg))
return True
return False