Re: [PATCH] Changes the getcmdpath method to use only python calls to find the paths

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, 21 Nov 2012 18:22:11 -0500
Raphaël Beamonte <raphael.beamonte@xxxxxxxxx> wrote:

> In my previous patches, I introduced a getcmdpath method which intended
> to replace the direct calls to binary from clear paths, using the which
> binary to locate the place of the searched one. This behavior was in
> fact not the finest as the method itself used the full path to the which
> binary. In this patch, I corrected the getcmdpath command to use only
> python calls (os.path.isfile and os.access) to identify in the PATH
> environment variable the place where the binary is.
> 
> Signed-off-by: Raphaël Beamonte <raphael.beamonte@xxxxxxxxx>
> ---
>  rteval/rteval.py |   12 +++++++++---
>  1 file changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/rteval/rteval.py b/rteval/rteval.py
> index beba49f..5843d78 100644
> --- a/rteval/rteval.py
> +++ b/rteval/rteval.py
> @@ -68,10 +68,16 @@ from cputopology import CPUtopology
>  
>  pathSave={}
>  def getcmdpath(which):
> +    """
> +    getcmdpath is a method which allows finding an executable in the PATH
> +    directories to call it from full path
> +    """
>      if not pathSave.has_key(which):
> -        cmd = '/usr/bin/which %s' % which
> -        c = subprocess.Popen(cmd, shell=True, stdout=subprocess.PIPE)
> -        pathSave[which] = c.stdout.read().strip()
> +        for path in os.environ['PATH'].split(':'):
> +            cmdfile = os.path.join(path, which)
> +            if os.path.isfile(cmdfile) and os.access(cmdfile, os.X_OK):
> +                pathSave[which] = cmdfile
> +                break
>          if not pathSave[which]:
>              raise RuntimeError, "Command '%s' is unknown on this system" % which
>      return pathSave[which]
> -- 


Applied to my rteval-1.0 branch. I haven't pushed it out yet since I'm
still looking at some other issues. Will go out with the next push.

Clark

Attachment: signature.asc
Description: PGP signature


[Index of Archives]     [RT Stable]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]

  Powered by Linux