1
2 """utility script to parse given filenames or string
3 """
4 __docformat__ = 'restructuredtext'
5 __version__ = '$Id: cssparse.py 1327 2008-07-08 21:17:12Z cthedot $'
6
7 import cssutils
8 import logging
9 import optparse
10 import sys
11
13 """
14 Parses given filename(s) or string (using optional encoding) and prints
15 the parsed style sheet to stdout.
16
17 Redirect stdout to save CSS. Redirect stderr to save parser log infos.
18 """
19 usage = """usage: %prog [options] filename1.css [filename2.css ...]
20 [>filename_combined.css] [2>parserinfo.log] """
21 p = optparse.OptionParser(usage=usage)
22 p.add_option('-e', '--encoding', action='store', dest='encoding',
23 help='encoding of the file')
24 p.add_option('-d', '--debug', action='store_true', dest='debug',
25 help='activate debugging output')
26 p.add_option('-m', '--minify', action='store_true', dest='minify',
27 help='minify parsed CSS', default=False)
28 p.add_option('-s', '--string', action='store_true', dest='string',
29 help='parse given string')
30
31 (options, params) = p.parse_args(args)
32
33 if not params:
34 p.error("no filename given")
35
36 if options.debug:
37 p = cssutils.CSSParser(loglevel=logging.DEBUG)
38 else:
39 p = cssutils.CSSParser()
40
41 if options.minify:
42 cssutils.ser.prefs.useMinified()
43
44 if options.string:
45 sheet = p.parseString(u''.join(params), encoding=options.encoding)
46 print sheet.cssText
47 print
48 sys.stderr.write('\n')
49 else:
50 for filename in params:
51 sys.stderr.write('=== CSS FILE: "%s" ===\n' % filename)
52 sheet = p.parseFile(filename, encoding=options.encoding)
53 print sheet.cssText
54 print
55 sys.stderr.write('\n')
56
57
58 if __name__ == "__main__":
59 sys.exit(main())
60