Esempio n. 1
0
def verifyAllPackages( compsFile, rpmdir, ignoredGroups ):
    mycomps = comps.parseComps( comps.parseCompsXmlNode( compsFile ) )
    compsset = mycomps.packages.keys()
    foundset = comps.getAllRpmTagNamesInDir( rpmdir )
    ignoredset = mycomps.findAllPkgsInGroups( ignoredGroups )
    missedInRpms = comps.findMissedPackages( foundset, compsset, ignoredset )
    noError = False
    noWarning = False

    if len( missedInRpms ) > 0:
        for pkg in missedInRpms:
            log.print_error( "no " + pkg + " rpm found in " + rpmdir )
    else:
        noError = not False
        print "Nothing missed in comps"
    
    missedInComps = comps.findMissedPackages( compsset, foundset )
    if len( missedInComps ) > 0:
        for pkg in missedInComps:
            log.print_warn( "no " + pkg + " rpm found in compsFile" )
    else:
        noWarning = not False
        print "Nothing missed in comps"

    if not noError:
        sys.exit( 1 )
Esempio n. 2
0
def mergeComps( compsFiles, outfile ):
    compsMergeList = []
    for compsFile in compsFiles:
        compsMergeList.append( comps.parseCompsMerge( comps.parseCompsXmlNode( compsFile ) ) )
    result = compsMergeList[0]
    for i in range( 1, len( compsMergeList ) ):
        try:
            result.merge( compsMergeList[i] )
        except DuplicationError, e:
            log.print_error( e.msg + " in " + compsFiles[ i ] )
            sys.exit( 1 )
Esempio n. 3
0
def main():
    version= "1.0.0"
    author="Zhiheng Zhang"
    shortOpts = "hvqV:i:mo:"
    longOpts = [ "help", "version", "query", "verify=", "ignore=", "merge", "out=" ]
    try:
        opts, args = getopt.getopt( sys.argv[1:], 
                                    shortOpts,
                                    longOpts )
    except getopt.GetoptError:
        log.print_error( "non-recognized command line arguments" )
        print_usage( )
        sys.exit( 1 )
        
    action = None
    ignoredGroups = []
    outfile="comps.xml"
    for o, a in opts:
        if o == "--help" or o == "-h":
            print_usage()
            sys.exit( 0 )
        elif o == "--version" or o == "-v":
            print "kscomps version " + version + " by " + author
            sys.exit(0 )
        elif o == "--query" or o == "-q":
            action = "query"
        elif o == "--verify" or o == "-V":
            action = "verify"
            rpmdir=a
            if not os.path.isdir( rpmdir ):
                log.print_error( rpmdir + " is not directory" )
                sys.exit( 1 )
        elif o == "--ignore" or o == "-i":
            if not a in ignoredGroups:
                ignoredGroups.append( a )
        elif o in ( "-m", "--merge" ):
            action = "merge"
        elif o in ( "-o", "--out" ):
            outfile = a
    if action == None:
        log.print_error( "no action asked" )
        print_usage()
        sys.exit(1)

    if len( args ) < 1:
        log.print_error( "no comps file" )
        print_usage( )
        sys.exit( 1 )
    
    compsFile = args[0]

    if action == "query":
        queryAllPackages( compsFile, ignoredGroups )
    elif action == "verify":
        verifyAllPackages( compsFile, rpmdir, ignoredGroups )
    elif action == "merge":
        mergeComps( args, outfile )