From 4710c53dcad1ebf3755f3efb9e80ac24bd72a9b2 Mon Sep 17 00:00:00 2001
From: darylm503 <darylm503@6f19259b-4bc3-4df7-8a09-765794883524>
Date: Mon, 16 Apr 2012 22:12:42 +0000
Subject: AppPkg/Applications/Python: Add Python 2.7.2 sources since the
 release of Python 2.7.3 made them unavailable from the python.org web site.

These files are a subset of the python-2.7.2.tgz distribution from python.org.  Changed files from PyMod-2.7.2 have been copied into the corresponding directories of this tree, replacing the original files in the distribution.

Signed-off-by: daryl.mcdaniel@intel.com


git-svn-id: https://edk2.svn.sourceforge.net/svnroot/edk2/trunk/edk2@13197 6f19259b-4bc3-4df7-8a09-765794883524
---
 .../Python/Python-2.7.2/Demo/scripts/lpwatch.py    | 102 +++++++++++++++++++++
 1 file changed, 102 insertions(+)
 create mode 100644 AppPkg/Applications/Python/Python-2.7.2/Demo/scripts/lpwatch.py

(limited to 'AppPkg/Applications/Python/Python-2.7.2/Demo/scripts/lpwatch.py')

diff --git a/AppPkg/Applications/Python/Python-2.7.2/Demo/scripts/lpwatch.py b/AppPkg/Applications/Python/Python-2.7.2/Demo/scripts/lpwatch.py
new file mode 100644
index 0000000000..61e937fd2a
--- /dev/null
+++ b/AppPkg/Applications/Python/Python-2.7.2/Demo/scripts/lpwatch.py
@@ -0,0 +1,102 @@
+#! /usr/bin/env python
+
+# Watch line printer queue(s).
+# Intended for BSD 4.3 lpq.
+
+import os
+import sys
+import time
+
+DEF_PRINTER = 'psc'
+DEF_DELAY = 10
+
+def main():
+    delay = DEF_DELAY # XXX Use getopt() later
+    try:
+        thisuser = os.environ['LOGNAME']
+    except:
+        thisuser = os.environ['USER']
+    printers = sys.argv[1:]
+    if printers:
+        # Strip '-P' from printer names just in case
+        # the user specified it...
+        for i, name in enumerate(printers):
+            if name[:2] == '-P':
+                printers[i] = name[2:]
+    else:
+        if os.environ.has_key('PRINTER'):
+            printers = [os.environ['PRINTER']]
+        else:
+            printers = [DEF_PRINTER]
+
+    clearhome = os.popen('clear', 'r').read()
+
+    while True:
+        text = clearhome
+        for name in printers:
+            text += makestatus(name, thisuser) + '\n'
+        print text
+        time.sleep(delay)
+
+def makestatus(name, thisuser):
+    pipe = os.popen('lpq -P' + name + ' 2>&1', 'r')
+    lines = []
+    users = {}
+    aheadbytes = 0
+    aheadjobs = 0
+    userseen = False
+    totalbytes = 0
+    totaljobs = 0
+    for line in pipe:
+        fields = line.split()
+        n = len(fields)
+        if len(fields) >= 6 and fields[n-1] == 'bytes':
+            rank, user, job = fields[0:3]
+            files = fields[3:-2]
+            bytes = int(fields[n-2])
+            if user == thisuser:
+                userseen = True
+            elif not userseen:
+                aheadbytes += bytes
+                aheadjobs += 1
+            totalbytes += bytes
+            totaljobs += 1
+            ujobs, ubytes = users.get(user, (0, 0))
+            ujobs += 1
+            ubytes += bytes
+            users[user] = ujobs, ubytes
+        else:
+            if fields and fields[0] != 'Rank':
+                line = line.strip()
+                if line == 'no entries':
+                    line = name + ': idle'
+                elif line[-22:] == ' is ready and printing':
+                    line = name
+                lines.append(line)
+
+    if totaljobs:
+        line = '%d K' % ((totalbytes+1023) // 1024)
+        if totaljobs != len(users):
+            line += ' (%d jobs)' % totaljobs
+        if len(users) == 1:
+            line += ' for %s' % (users.keys()[0],)
+        else:
+            line += ' for %d users' % len(users)
+            if userseen:
+                if aheadjobs == 0:
+                    line += ' (%s first)' % thisuser
+                else:
+                    line += ' (%d K before %s)' % (
+                        (aheadbytes+1023) // 1024, thisuser)
+        lines.append(line)
+
+    sts = pipe.close()
+    if sts:
+        lines.append('lpq exit status %r' % (sts,))
+    return ': '.join(lines)
+
+if __name__ == "__main__":
+    try:
+        main()
+    except KeyboardInterrupt:
+        pass
-- 
cgit v1.2.3