[poky] [PATCH 1/1] kernel.py: replace os.popen with subprocess.Popen

Darren Hart dvhart at linux.intel.com
Fri Jun 8 08:08:59 PDT 2012



On 06/01/2012 01:51 AM, Robert Yang wrote:
> Replace os.popen with subprocess.Popen since the older function would
> fail (more or less) silently if the executed program cannot be found
> 
> More info:
> http://docs.python.org/library/subprocess.html#subprocess-replacements
> 
> [YOCTO #2454]
> 
> Signed-off-by: Robert Yang <liezhi.yang at windriver.com>
> ---
>  scripts/lib/bsp/kernel.py |    5 +++--
>  1 files changed, 3 insertions(+), 2 deletions(-)
> 
> diff --git a/scripts/lib/bsp/kernel.py b/scripts/lib/bsp/kernel.py
> index 8b3aa72..7c6da4e 100644
> --- a/scripts/lib/bsp/kernel.py
> +++ b/scripts/lib/bsp/kernel.py
> @@ -31,6 +31,7 @@ import os
>  import shutil
>  from tags import *
>  import glob
> +import subprocess
>  
>  
>  def find_bblayers(scripts_path):
> @@ -678,7 +679,7 @@ def base_branches(context):
>      print "Getting branches from remote repo %s..." % giturl
>  
>      gitcmd = "git ls-remote %s *heads* 2>&1" % (giturl)
> -    tmp = os.popen(gitcmd).read()
> +    tmp = subprocess.Popen(gitcmd, shell=True, stdout=subprocess.PIPE).stdout.read()

Subprocess is right module to use here, but I believe the recommended
method would be:

subprocess.call(gitcmd...

According to:
http://docs.python.org/library/subprocess.html

>  
>      branches = []
>  
> @@ -708,7 +709,7 @@ def all_branches(context):
>      print "Getting branches from remote repo %s..." % giturl
>  
>      gitcmd = "git ls-remote %s *heads* 2>&1" % (giturl)
> -    tmp = os.popen(gitcmd).read()
> +    tmp = subprocess.Popen(gitcmd, shell=True, stdout=subprocess.PIPE).stdout.read()
>  
>      branches = []
>  

And here I think subprocess.check_output(...) is preferred.

-- 
Darren Hart
Intel Open Source Technology Center
Yocto Project - Linux Kernel



More information about the poky mailing list