Re: New python function

Lars Ivar Igesund <[email protected]> Wed, 19 May 2004 22:59:20 +0100
Newsgroups gmane.comp.tools.aap.devel
Message-ID <[email protected]>
Hmm, will this be included at some time?

Lars Ivar Igesund wrote:
> Sorry, missed a vital line in my previous patch. This one is tested
> a little bit better.
> 
> Lars Ivar Igesund
> 
> Lars Ivar Igesund wrote:
> 
>> Hi
>>
>> I've made a new python function by modifying program_path.
>> My version is a bit simpler and is called file_path. It can
>> find any kind of file, whether it is executable or not.
>>
>> I don't know if it should be added as-is, but the new function
>> is very useful in conf operations where you're looking for
>> libraries, etc.
>>
>> Lars Ivar Igesund
> 
> 
> 
> ------------------------------------------------------------------------
> 
> Index: RecPython.py
> ===================================================================
> RCS file: /cvsroot/a-a-p/Exec/RecPython.py,v
> retrieving revision 1.38
> diff -u -r1.38 RecPython.py
> --- RecPython.py	8 Mar 2004 20:55:52 -0000	1.38
> +++ RecPython.py	22 Apr 2004 15:17:18 -0000
> @@ -363,6 +363,36 @@
>      return action
>  
>  
> +def file_path(name, path = None, skip = None):
> +    """Return the full name of a file "name" if it can be found in the
> +       search path. None otherwise.
> +       If "path" is given, use it as the search path (string of items
> +       separated with os.pathsep).
> +       If "skip" is given, skip this directory."""
> +    # Decide on the list of directories to examine.
> +    if not path is None:
> +        envpath = path
> +    elif os.environ.has_key('PATH'):
> +        envpath = os.environ['PATH']
> +    else:
> +        envpath = os.defpath
> +    if not type(envpath) is types.ListType:
> +        dirlist = string.split(envpath, os.pathsep)
> +    # When using a default path also include our own directory and its "bin"
> +    # subdirectory.
> +    if path is None and Global.aap_rootdir:
> +        dirlist = [ Global.aap_rootdir, Global.aap_bindir ] + dirlist
> +
> +    for dir in dirlist:
> +        if skip and os.path.abspath(dir) == os.path.abspath(skip):
> +            continue
> +        fullname = os.path.join(dir, name)
> +        if os.path.isfile(fullname):
> +            return fullname
> +
> +    return None
> +
> +
>  def program_path(name, path = None, pathext = None, skip = None):
>      """Return the full name of a program "name" if it can be found in the
>         search path.  None otherwise.



-------------------------------------------------------
This SF.Net email is sponsored by: SourceForge.net Broadband
Sign-up now for SourceForge Broadband and get the fastest
6.0/768 connection for only $19.95/mo for the first 3 months!
http://ads.osdn.com/?ad_id=2562&alloc_id=6184&op=click