diff options
author | Guido van Rossum <guido@python.org> | 1991-12-18 13:38:58 (GMT) |
---|---|---|
committer | Guido van Rossum <guido@python.org> | 1991-12-18 13:38:58 (GMT) |
commit | 7030d0a1597556aa20b715351ad61ed96e98ce7c (patch) | |
tree | 61fd4b2bd615de958b1979751001ec4b5612d05a /Demo/scripts | |
parent | 5558b89320744797ff6c97c70c2308d805e7ee3d (diff) | |
download | cpython-7030d0a1597556aa20b715351ad61ed96e98ce7c.zip cpython-7030d0a1597556aa20b715351ad61ed96e98ce7c.tar.gz cpython-7030d0a1597556aa20b715351ad61ed96e98ce7c.tar.bz2 |
Modularized the code.
Diffstat (limited to 'Demo/scripts')
-rwxr-xr-x | Demo/scripts/lpwatch.py | 59 |
1 files changed, 26 insertions, 33 deletions
diff --git a/Demo/scripts/lpwatch.py b/Demo/scripts/lpwatch.py index b2e4769..db0f469 100755 --- a/Demo/scripts/lpwatch.py +++ b/Demo/scripts/lpwatch.py @@ -34,22 +34,15 @@ def main(): clearhome = posix.popen('clear', 'r').read() # while 1: - # Pipe output through cat for extra buffering, - # so the output (which overwrites the previous) - # appears instantaneous. - sys.stdout = posix.popen('exec cat', 'w') - sys.stdout.write(clearhome) + text = clearhome for name in printers: - pipe = posix.popen('lpq -P' + name + ' 2>&1', 'r') - showstatus(name, pipe, thisuser) - sts = pipe.close() - if sts: - print name + ': *** lpq exit status', sts - sts = sys.stdout.close() + text = text + makestatus(name, thisuser) + '\n' + print text time.sleep(delay) -def showstatus(name, pipe, thisuser): - lines = 0 +def makestatus(name, thisuser): + pipe = posix.popen('lpq -P' + name + ' 2>&1', 'r') + lines = [] users = {} aheadbytes = 0 aheadjobs = 0 @@ -83,33 +76,33 @@ def showstatus(name, pipe, thisuser): users[user] = ujobs, ubytes else: if fields and fields[0] <> 'Rank': - if line[-1:] = '\n': - line = line[:-1] - if not lines: - print name + ':', - else: - print - print line, - lines = lines + 1 + line = string.strip(line) + if line = 'no entries': + line = name + ': idle' + elif line[-22:] = ' is ready and printing': + line = name + lines.append(line) + # if totaljobs: - if lines > 1: - print - lines = lines+1 - print (totalbytes+1023)/1024, 'K', + line = `(totalbytes+1023)/1024` + ' K' if totaljobs <> len(users): - print '(' + `totaljobs` + ' jobs)', + line = line + ' (' + `totaljobs` + ' jobs)' if len(users) = 1: - print 'for', users.keys()[0], + line = line + ' for ' + users.keys()[0] else: - print 'for', len(users), 'users', + line = line + ' for ' + `len(users)` + ' users' if userseen: if aheadjobs = 0: - print '(' + thisuser + ' first)', + line = line + ' (' + thisuser + ' first)' else: - print '(' + `(aheadbytes+1023)/1024`, - print 'K before', thisuser + ')' - if lines: - print + line = line + ' (' + `(aheadbytes+1023)/1024` + line = line + ' K before ' + thisuser + ')' + lines.append(line) + # + sts = pipe.close() + if sts: + lines.append('lpq exit status ' + `sts`) + return string.joinfields(lines, ': ') try: main() |