#############################################################################
# File		: Filter.py
# Package	: rpmlint
# Author	: Frederic Lepied
# Created on	: Sat Oct 23 15:52:27 1999
# Version	: $Id: Filter.py,v 1.5 2001/07/15 16:52:55 flepied Exp $
# Purpose	: filter the output of rpmlint to allow exceptions.
#############################################################################

import sys
import Config

def printInfo(pkg, reason, *details):
    if _print("I", pkg, reason, details) and Config.info:
        printDescriptions(reason)
        
def printWarning(pkg, reason, *details):
    if _print("W", pkg, reason, details) and Config.info:
        printDescriptions(reason)

def printError(pkg, reason, *details):
    if _print("E", pkg, reason, details) and Config.info:
        printDescriptions(reason)

def _print(type, pkg, reason, details):
    s="%s: %s %s" % (type, pkg.name, reason)
    for d in details:
	s = s + " %s" % d
    
    if not Config.isFiltered(s):
	sys.stdout.write(s)
	sys.stdout.write("\n")
        return 1

    return 0

def printDescriptions(reason):
    try:
        d = _details[reason]
        if d and d != '' and d != "\n":
            sys.stdout.write(d)
            sys.stdout.write("\n\n")
    except KeyError:
        pass
    
_details={}

def addDetails(*details):
    for idx in range(len(details)/2):
        _details[details[idx*2]]=details[idx*2+1]
    
# Filter.py ends here
