AppDataCheck: Make checker command configurable

For example to make the check stricter than the default
"appstream-util validate-relax", set it to ("appstream-util",
"validate").
This commit is contained in:
Ville Skyttä 2015-01-24 10:57:26 +02:00
parent a200fe7a0f
commit ffc47e8a10
2 changed files with 11 additions and 3 deletions

View File

@ -9,8 +9,12 @@
from Filter import addDetails, printError from Filter import addDetails, printError
from Pkg import getstatusoutput from Pkg import getstatusoutput
import AbstractCheck import AbstractCheck
import Config
STANDARD_BIN_DIRS = ['/bin/', '/sbin/', '/usr/bin/', '/usr/sbin/'] STANDARD_BIN_DIRS = ['/bin/', '/sbin/', '/usr/bin/', '/usr/sbin/']
DEFAULT_APPDATA_CHECKER = ('appstream-util', 'validate-relax')
appdata_checker = Config.getOption("AppDataChecker", DEFAULT_APPDATA_CHECKER)
class AppDataCheck(AbstractCheck.AbstractFilesCheck): class AppDataCheck(AbstractCheck.AbstractFilesCheck):
@ -25,9 +29,9 @@ class AppDataCheck(AbstractCheck.AbstractFilesCheck):
root = pkg.dirName() root = pkg.dirName()
f = root + filename f = root + filename
try: try:
st = getstatusoutput(('appstream-util', 'validate-relax', f)) st = getstatusoutput(appdata_checker + (f,))
except OSError: except OSError:
# ignore the check if appstream-util is not installed # ignore if the checker is not installed
return return
if st[0]: if st[0]:
printError(pkg, 'invalid-appdata-file', filename) printError(pkg, 'invalid-appdata-file', filename)
@ -37,7 +41,7 @@ check = AppDataCheck()
addDetails( addDetails(
'invalid-appdata-file', 'invalid-appdata-file',
'''appdata file is not valid, check with appstream-util validate-relax''', '''appdata file is not valid, check with %s''' % (" ".join(appdata_checker)),
) )
# Local variables: # Local variables:

4
config
View File

@ -212,6 +212,10 @@ from Config import *
# Type: string, default: 'mac' # Type: string, default: 'mac'
#SetOption("ManWarningCategory", 'mac') #SetOption("ManWarningCategory", 'mac')
# Command and arguments to validate appdata files.
# Type: tuple of strings, default: see DEFAULT_APPDATA_CHECKER in AppDataCheck
#setOption("AppDataChecker", ('appstream-util', 'validate-relax'))
# Output filters. # Output filters.
# --------------- # ---------------