forked from pool/rpmlint
54 lines
1.7 KiB
Python
54 lines
1.7 KiB
Python
|
# vim:sw=4:et
|
||
|
#############################################################################
|
||
|
# File : CheckIconSizes.py
|
||
|
# Package : rpmlint
|
||
|
# Author : Dirk Mueller
|
||
|
# Purpose : Check for common scaling errors in icons
|
||
|
#############################################################################
|
||
|
|
||
|
from Filter import *
|
||
|
import AbstractCheck
|
||
|
import rpm
|
||
|
import re
|
||
|
import commands
|
||
|
import stat
|
||
|
import Config
|
||
|
import os
|
||
|
import string
|
||
|
|
||
|
class IconSizesCheck(AbstractCheck.AbstractCheck):
|
||
|
def __init__(self):
|
||
|
AbstractCheck.AbstractCheck.__init__(self, "IconSizesCheck")
|
||
|
self.file_size_regex = re.compile('/icons/[^/]+/(\d+)x(\d+)/')
|
||
|
self.info_size_regex = re.compile('(\d+) x (\d+)')
|
||
|
|
||
|
def check(self, pkg):
|
||
|
|
||
|
if pkg.isSource():
|
||
|
return
|
||
|
|
||
|
info = pkg.getFilesInfo()
|
||
|
for i in info:
|
||
|
file = i[0]
|
||
|
res = self.file_size_regex.search(file)
|
||
|
if res:
|
||
|
sizes = (res.group(1), res.group(2))
|
||
|
res = self.info_size_regex.search(i[1])
|
||
|
if res:
|
||
|
actualsizes = (res.group(1), res.group(2))
|
||
|
|
||
|
if abs(int(sizes[0])-int(actualsizes[0])) > 2 or \
|
||
|
abs(int(sizes[1])-int(actualsizes[1])) > 2:
|
||
|
printError(pkg,"wrong-icon-size", file, "expected:",
|
||
|
"x".join(sizes), "actual:", "x".join(actualsizes))
|
||
|
|
||
|
|
||
|
check=IconSizesCheck()
|
||
|
|
||
|
if Config.info:
|
||
|
addDetails(
|
||
|
'wrong-icon-size',
|
||
|
"""Your icon file is installed in a fixed-size directory, but has a largely incorrect size.
|
||
|
Some desktop environments (e.g. GNOME) display them incorrectly."""
|
||
|
)
|