7
from optparse import OptionParser
11
from cStringIO import StringIO
12
from os.path import basename
15
ppds_compressed = base64.b64decode(ppds_compressed_b64)
16
ppds_decompressed = decompress(ppds_compressed)
17
ppds = cPickle.loads(ppds_decompressed)
21
binary_name = basename(argv[0])
23
for key, value in ppds.iteritems():
24
if key == 'ARCHIVE': continue
26
print ppd.replace('"', '"' + binary_name + ':', 1)
29
# Ignore driver's name, take only PPD's
30
ppd = ppd.split(":")[-1]
33
ppds['ARCHIVE'] = StringIO(decompress(ppds['ARCHIVE']))
38
ppds['ARCHIVE'].seek(start)
39
return ppds['ARCHIVE'].read(length)
42
usage = "usage: %prog list\n" \
44
version = "%prog 0.4.3\n" \
45
"Copyright (c) 2010 Vitor Baptista.\n" \
46
"This is free software; see the source for copying conditions.\n" \
47
"There is NO warranty; not even for MERCHANTABILITY or\n" \
48
"FITNESS FOR A PARTICULAR PURPOSE."
49
parser = OptionParser(usage=usage,
51
(options, args) = parser.parse_args()
53
if len(args) == 0 or len(args) > 2:
54
parser.error("incorrect number of arguments")
56
if args[0].lower() == 'list':
58
elif args[0].lower() == 'cat':
59
if not len(args) == 2:
60
parser.error("incorrect number of arguments")
63
parser.error("Printer '%s' does not have default driver!" % args[1])
66
parser.error("argument " + args[0] + " invalid")
69
ppds_compressed_b64 = "@ppds_compressed_b64@"
71
if __name__ == "__main__":