3 pygments.cmdline |
3 pygments.cmdline |
4 ~~~~~~~~~~~~~~~~ |
4 ~~~~~~~~~~~~~~~~ |
5 |
5 |
6 Command line interface. |
6 Command line interface. |
7 |
7 |
8 :copyright: Copyright 2006-2012 by the Pygments team, see AUTHORS. |
8 :copyright: Copyright 2006-2013 by the Pygments team, see AUTHORS. |
9 :license: BSD, see LICENSE for details. |
9 :license: BSD, see LICENSE for details. |
10 """ |
10 """ |
11 import sys |
11 import sys |
12 import getopt |
12 import getopt |
13 from textwrap import dedent |
13 from textwrap import dedent |
190 """ |
190 """ |
191 # pylint: disable-msg=R0911,R0912,R0915 |
191 # pylint: disable-msg=R0911,R0912,R0915 |
192 |
192 |
193 usage = USAGE % ((args[0],) * 6) |
193 usage = USAGE % ((args[0],) * 6) |
194 |
194 |
|
195 if sys.platform in ['win32', 'cygwin']: |
|
196 try: |
|
197 # Provide coloring under Windows, if possible |
|
198 import colorama |
|
199 colorama.init() |
|
200 except ImportError: |
|
201 pass |
|
202 |
195 try: |
203 try: |
196 popts, args = getopt.getopt(args[1:], "l:f:F:o:O:P:LS:a:N:hVHg") |
204 popts, args = getopt.getopt(args[1:], "l:f:F:o:O:P:LS:a:N:hVHg") |
197 except getopt.GetoptError as err: |
205 except getopt.GetoptError as err: |
198 print(usage, file=sys.stderr) |
206 print(usage, file=sys.stderr) |
199 return 2 |
207 return 2 |
217 if opts.pop('-h', None) is not None: |
225 if opts.pop('-h', None) is not None: |
218 print(usage) |
226 print(usage) |
219 return 0 |
227 return 0 |
220 |
228 |
221 if opts.pop('-V', None) is not None: |
229 if opts.pop('-V', None) is not None: |
222 print('Pygments version %s, (c) 2006-2011 by Georg Brandl.' % __version__) |
230 print('Pygments version %s, (c) 2006-2013 by Georg Brandl.' % __version__) |
223 return 0 |
231 return 0 |
224 |
232 |
225 # handle ``pygmentize -L`` |
233 # handle ``pygmentize -L`` |
226 L_opt = opts.pop('-L', None) |
234 L_opt = opts.pop('-L', None) |
227 if L_opt is not None: |
235 if L_opt is not None: |
368 try: |
376 try: |
369 lexer = get_lexer_for_filename(infn, code, **parsed_opts) |
377 lexer = get_lexer_for_filename(infn, code, **parsed_opts) |
370 except ClassNotFound as err: |
378 except ClassNotFound as err: |
371 if '-g' in opts: |
379 if '-g' in opts: |
372 try: |
380 try: |
373 lexer = guess_lexer(code) |
381 lexer = guess_lexer(code, **parsed_opts) |
374 except ClassNotFound: |
382 except ClassNotFound: |
375 lexer = TextLexer() |
383 lexer = TextLexer(**parsed_opts) |
376 else: |
384 else: |
377 print('Error:', err, file=sys.stderr) |
385 print('Error:', err, file=sys.stderr) |
378 return 1 |
386 return 1 |
379 except OptionError as err: |
387 except OptionError as err: |
380 print('Error:', err, file=sys.stderr) |
388 print('Error:', err, file=sys.stderr) |
382 |
390 |
383 else: |
391 else: |
384 if '-g' in opts: |
392 if '-g' in opts: |
385 code = sys.stdin.read() |
393 code = sys.stdin.read() |
386 try: |
394 try: |
387 lexer = guess_lexer(code) |
395 lexer = guess_lexer(code, **parsed_opts) |
388 except ClassNotFound: |
396 except ClassNotFound: |
389 lexer = TextLexer() |
397 lexer = TextLexer(**parsed_opts) |
390 elif not lexer: |
398 elif not lexer: |
391 print('Error: no lexer name given and reading ' + \ |
399 print('Error: no lexer name given and reading ' + \ |
392 'from stdin (try using -g or -l <lexer>)', file=sys.stderr) |
400 'from stdin (try using -g or -l <lexer>)', file=sys.stderr) |
393 return 2 |
401 return 2 |
394 else: |
402 else: |