Comment on this script. Possible error in communication with list arg between functions

Phoe6 orsenthil at gmail.com
Mon Jul 24 15:50:42 EDT 2006


Juho Schultz wrote:
> I think return values should be used for communication between
> functions. Maybe something like this could work for you (not tested).
>
> def checkForRpm(rpmname):
>     # <cut start of function>
>     # Strings with 0 lenght are False
>     if output:
>         print output
>     else:
>         print rpmname + ' is not installed'
>     return output
>
> def checkPreReqs():
>     missingRpms = []
>     for requiredRpm in listOfRpms:
>         if not checkForRpm(requiredRpm):
>             missingRpms.append(requiredRpm)
>     # you could also do this by a list comprehension
>     missingRpms = [reqRpm for reqRpm in listOfRpms if not
> checkForRpm(reqRpm)]
>     # or you could use the builtin function filter() - see
> filter.__doc__ for that

Thanks Juho. I got the logic to workout the problem and I was able to
solve it. There was bit alteration of my code was required. Its working
now. Thanks.
---
def checkForRpm(rpmname):
        ''' Check for the presence of the RPM. '''
        cin,cout,cerr = os.popen3('rpm -q ' + rpmname)
        rpmStatus = cout.read()
        print rpmStatus,
        return rpmStatus



def preReqCheckRpms():
        ''' Check for the required RPMS '''
        listOfRpms =
['firefox','senthil','binutils','gcc','cpp','glibc-devel','glibc-headers','glibc-kernheaders','compat-db','compat-gcc','compat-gcc-c++','compat-libstdc++','compat-libstdc++-devel','gnome-libs','openmotif21','setarch']
        missingRpms = []
        for requiredRpm in listOfRpms:
                if checkForRpm(requiredRpm).find('is not installed') >
0:
                        missingRpms.append(requiredRpm)
        if missingRpms:
                print 'The following RPMS are not installed:'
                for eachMissingRpm in missingRpms:
                        print eachMissingRpm
                print 'Please install them for the installation to
continue.'
                sys.exit(-1)


             
---




More information about the Python-list mailing list