From 4fd1292c3cd14aaf321747b9c8cfa1cafbf5323c Mon Sep 17 00:00:00 2001
From: Fred Drake <fdrake@acm.org>
Date: Thu, 12 Jun 1997 16:05:46 +0000
Subject: Documentation for Lib/commands.py, from Sue Williams.

---
 Doc/lib.tex             |  3 ++-
 Doc/lib/lib.tex         |  3 ++-
 Doc/lib/libcommands.tex | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 Doc/libcommands.tex     | 48 ++++++++++++++++++++++++++++++++++++++++++++++++
 4 files changed, 100 insertions(+), 2 deletions(-)
 create mode 100644 Doc/lib/libcommands.tex
 create mode 100644 Doc/libcommands.tex

diff --git a/Doc/lib.tex b/Doc/lib.tex
index 0e70deb..6198445 100644
--- a/Doc/lib.tex
+++ b/Doc/lib.tex
@@ -1,4 +1,4 @@
-\documentstyle[twoside,11pt,myformat]{report}
+\documentstyle[twoside,openright,10pt,myformat]{report}
 
 % NOTE: this file controls which chapters/sections of the library
 % manual are actually printed.  It is easy to customize your manual
@@ -137,6 +137,7 @@ to Python and how to embed it in other applications.
 \input{libresource}
 \input{libsyslog}
 \input{libstat}
+\input{libcommands}
 
 \input{libpdb}			% The Python Debugger
 
diff --git a/Doc/lib/lib.tex b/Doc/lib/lib.tex
index 0e70deb..6198445 100644
--- a/Doc/lib/lib.tex
+++ b/Doc/lib/lib.tex
@@ -1,4 +1,4 @@
-\documentstyle[twoside,11pt,myformat]{report}
+\documentstyle[twoside,openright,10pt,myformat]{report}
 
 % NOTE: this file controls which chapters/sections of the library
 % manual are actually printed.  It is easy to customize your manual
@@ -137,6 +137,7 @@ to Python and how to embed it in other applications.
 \input{libresource}
 \input{libsyslog}
 \input{libstat}
+\input{libcommands}
 
 \input{libpdb}			% The Python Debugger
 
diff --git a/Doc/lib/libcommands.tex b/Doc/lib/libcommands.tex
new file mode 100644
index 0000000..7584931
--- /dev/null
+++ b/Doc/lib/libcommands.tex
@@ -0,0 +1,48 @@
+\section{Standard module \sectcode{commands}}	% If implemented in Python
+\stmodindex{commands}
+
+The \code{commands} module contains wrapper functions for \code{os.popen()} 
+which take a system command as a string and return any output generated by 
+the command, and optionally, the exit status.
+
+The \code{commands} module is only usable on systems which support 
+\code{popen()} (currently \UNIX{}).
+
+The \code{commands} module defines the following functions:
+
+\renewcommand{\indexsubitem}{(in module commands)}
+\begin{funcdesc}{getstatusoutput}{cmd}
+Execute the string \var{cmd} in a shell with \code{os.popen()} and return
+a 2-tuple (status, output).  \var{cmd} is actually run as
+\samp{cmd ; 2$>$\$1}, so that the returned output will contain output
+or error messages. A trailing newline is stripped from the output.
+The exit status for the  command can be interpreted according to the
+rules for the \C{} function \code{wait()}.  
+\end{funcdesc}
+
+\begin{funcdesc}{getoutput}{cmd}
+Like \code{getstatusoutput()}, except the exit status is ignored and
+the return value is a string containing the command's output.  
+\end{funcdesc}
+
+\begin{funcdesc}{getstatus}{file}
+Return the output of \samp{ls -ld \var{file}} as a string.  This
+function uses the \code{getoutput()} function, and properly escapes
+backslashes and dollar signs in the argument.
+\end{funcdesc}
+
+Example:
+
+\begin{verbatim}
+>>> import commands
+>>> commands.getstatusoutput('ls /bin/ls')
+(0, '/bin/ls')
+>>> commands.getstatusoutput('cat /bin/junk')
+(256, 'cat: /bin/junk: No such file or directory')
+>>> commands.getstatusoutput('/bin/junk')
+(256, 'sh: /bin/junk: not found')
+>>> commands.getoutput('ls /bin/ls')
+'/bin/ls'
+>>> commands.getstatus('/bin/ls')
+'-rwxr-xr-x  1 root        13352 Oct 14  1994 /bin/ls'
+\end{verbatim}
diff --git a/Doc/libcommands.tex b/Doc/libcommands.tex
new file mode 100644
index 0000000..7584931
--- /dev/null
+++ b/Doc/libcommands.tex
@@ -0,0 +1,48 @@
+\section{Standard module \sectcode{commands}}	% If implemented in Python
+\stmodindex{commands}
+
+The \code{commands} module contains wrapper functions for \code{os.popen()} 
+which take a system command as a string and return any output generated by 
+the command, and optionally, the exit status.
+
+The \code{commands} module is only usable on systems which support 
+\code{popen()} (currently \UNIX{}).
+
+The \code{commands} module defines the following functions:
+
+\renewcommand{\indexsubitem}{(in module commands)}
+\begin{funcdesc}{getstatusoutput}{cmd}
+Execute the string \var{cmd} in a shell with \code{os.popen()} and return
+a 2-tuple (status, output).  \var{cmd} is actually run as
+\samp{cmd ; 2$>$\$1}, so that the returned output will contain output
+or error messages. A trailing newline is stripped from the output.
+The exit status for the  command can be interpreted according to the
+rules for the \C{} function \code{wait()}.  
+\end{funcdesc}
+
+\begin{funcdesc}{getoutput}{cmd}
+Like \code{getstatusoutput()}, except the exit status is ignored and
+the return value is a string containing the command's output.  
+\end{funcdesc}
+
+\begin{funcdesc}{getstatus}{file}
+Return the output of \samp{ls -ld \var{file}} as a string.  This
+function uses the \code{getoutput()} function, and properly escapes
+backslashes and dollar signs in the argument.
+\end{funcdesc}
+
+Example:
+
+\begin{verbatim}
+>>> import commands
+>>> commands.getstatusoutput('ls /bin/ls')
+(0, '/bin/ls')
+>>> commands.getstatusoutput('cat /bin/junk')
+(256, 'cat: /bin/junk: No such file or directory')
+>>> commands.getstatusoutput('/bin/junk')
+(256, 'sh: /bin/junk: not found')
+>>> commands.getoutput('ls /bin/ls')
+'/bin/ls'
+>>> commands.getstatus('/bin/ls')
+'-rwxr-xr-x  1 root        13352 Oct 14  1994 /bin/ls'
+\end{verbatim}
-- 
cgit v0.12

