diff options
| author | Fred Drake <fdrake@acm.org> | 1997-06-12 16:17:00 (GMT) | 
|---|---|---|
| committer | Fred Drake <fdrake@acm.org> | 1997-06-12 16:17:00 (GMT) | 
| commit | bcdb9403d44a30c5a55c7ccbaebbbb26ff6a0b87 (patch) | |
| tree | 7b7b2a23d35a92cc359bb0785627bfd40a2587b8 /Lib/commands.py | |
| parent | 8f81ef1edda593432d09d52faa12f72ba6eba2f4 (diff) | |
| download | cpython-bcdb9403d44a30c5a55c7ccbaebbbb26ff6a0b87.zip cpython-bcdb9403d44a30c5a55c7ccbaebbbb26ff6a0b87.tar.gz cpython-bcdb9403d44a30c5a55c7ccbaebbbb26ff6a0b87.tar.bz2  | |
Added docstrings by Sue Williams, re-indented to 4 spaces / level.
Diffstat (limited to 'Lib/commands.py')
| -rw-r--r-- | Lib/commands.py | 64 | 
1 files changed, 44 insertions, 20 deletions
diff --git a/Lib/commands.py b/Lib/commands.py index 6471a8d..567248e 100644 --- a/Lib/commands.py +++ b/Lib/commands.py @@ -1,3 +1,24 @@ +"""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.] +""" +  # Module 'commands'  #  # Various tools for executing commands and looking at their output and status. @@ -8,7 +29,8 @@  # Get 'ls -l' status for an object into a string  #  def getstatus(file): -	return getoutput('ls -ld' + mkarg(file)) +    """Return output of "ls -ld <file>" in a string.""" +    return getoutput('ls -ld' + mkarg(file))  # Get the output from a shell command into a string. @@ -16,27 +38,29 @@ def getstatus(file):  # Assume the command will work with '{ ... ; } 2>&1' around it..  #  def getoutput(cmd): -	return getstatusoutput(cmd)[1] +    """Return output (stdout or stderr) of executing cmd in a shell.""" +    return getstatusoutput(cmd)[1]  # Ditto but preserving the exit status.  # Returns a pair (sts, output)  #  def getstatusoutput(cmd): -	import os -	pipe = os.popen('{ ' + cmd + '; } 2>&1', 'r') -	text = pipe.read() -	sts = pipe.close() -	if sts == None: sts = 0 -	if text[-1:] == '\n': text = text[:-1] -	return sts, text +    """Return (status, output) of executing cmd in a shell.""" +    import os +    pipe = os.popen('{ ' + cmd + '; } 2>&1', 'r') +    text = pipe.read() +    sts = pipe.close() +    if sts == None: sts = 0 +    if text[-1:] == '\n': text = text[:-1] +    return sts, text  # Make command argument from directory and pathname (prefix space, add quotes).  #  def mk2arg(head, x): -	import os -	return mkarg(os.path.join(head, x)) +    import os +    return mkarg(os.path.join(head, x))  # Make a shell command argument from a string. @@ -47,12 +71,12 @@ def mk2arg(head, x):  # with backslash.  #  def mkarg(x): -	if '\'' not in x: -		return ' \'' + x + '\'' -	s = ' "' -	for c in x: -		if c in '\\$"`': -			s = s + '\\' -		s = s + c -	s = s + '"' -	return s +    if '\'' not in x: +	return ' \'' + x + '\'' +    s = ' "' +    for c in x: +	if c in '\\$"`': +	    s = s + '\\' +	    s = s + c +    s = s + '"' +    return s  | 
