mò
­fIc           @   sF   d  Z  d d d g Z d „  Z d „  Z d „  Z d „  Z d „  Z d	 S(
   s-  Execute shell commands via os.popen() and return status, output.

Interface summary:

       import commands

       outtext = commands.getoutput(cmd)
       (exitstatus, outtext) = commands.getstatusoutput(cmd)
       outtext = commands.getstatus(file)  # returns output of "ls -ld file"

A trailing newline is removed from the output string.

Encapsulates the basic operation:

      pipe = os.popen('{ ' + cmd + '; } 2>&1', 'r')
      text = pipe.read()
      sts = pipe.close()

 [Note:  it would be nice to add functions to interpret the exit status.]
t   getstatusoutputt	   getoutputt	   getstatusc         C   s   t  d t |  ƒ ƒ S(   s-   Return output of "ls -ld <file>" in a string.s   ls -ldN(   R   t   mkargt   file(   R   (    (    t%   /mit/python/lib/python2.4/commands.pyR   !   s     c         C   s   t  |  ƒ d S(   s=   Return output (stdout or stderr) of executing cmd in a shell.i   N(   R    t   cmd(   R   (    (    R   R   *   s     c         C   s{   d k  } | i d |  d d ƒ } | i ƒ  } | i ƒ  } | d j o
 d } n | d d j o | d  } n | | f S(   s4   Return (status, output) of executing cmd in a shell.Ns   { s   ; } 2>&1t   ri    iÿÿÿÿs   
(	   t   ost   popenR   t   pipet   readt   textt   closet   stst   None(   R   R   R
   R   R   (    (    R   R    2   s     	 
 c         C   s"   d  k  } t | i i |  | ƒ ƒ S(   N(   R   R   t   patht   joint   headt   x(   R   R   R   (    (    R   t   mk2arg?   s    	c         C   sg   d |  j o d |  d Sn d } x3 |  D]+ } | d j o | d } n | | } q* W| d } | S(   Ns   's    's    "s   \$"`s   \t   "(   R   t   st   c(   R   R   R   (    (    R   R   K   s     
N(   t   __doc__t   __all__R   R   R    R   R   (   R   R   R   R   R   R    (    (    R   t   ?   s   					