equal
deleted
inserted
replaced
1 import os, re, traceback, sys, signal, time, mdiff |
1 # commands.py - command processing for mercurial |
|
2 # |
|
3 # Copyright 2005 Matt Mackall <mpm@selenic.com> |
|
4 # |
|
5 # This software may be used and distributed according to the terms |
|
6 # of the GNU General Public License, incorporated herein by reference. |
|
7 |
|
8 import os, re, sys, signal, time, mdiff |
2 from mercurial import fancyopts, ui, hg |
9 from mercurial import fancyopts, ui, hg |
3 |
10 |
4 class UnknownCommand(Exception): pass |
11 class UnknownCommand(Exception): pass |
5 |
12 |
6 def filterfiles(filters, files): |
13 def filterfiles(filters, files): |
520 class SignalInterrupt(Exception): pass |
527 class SignalInterrupt(Exception): pass |
521 |
528 |
522 def catchterm(*args): |
529 def catchterm(*args): |
523 raise SignalInterrupt |
530 raise SignalInterrupt |
524 |
531 |
|
532 def run(): |
|
533 sys.exit(dispatch(sys.argv[1:])) |
|
534 |
525 def dispatch(args): |
535 def dispatch(args): |
526 options = {} |
536 options = {} |
527 opts = [('v', 'verbose', None, 'verbose'), |
537 opts = [('v', 'verbose', None, 'verbose'), |
528 ('d', 'debug', None, 'debug'), |
538 ('d', 'debug', None, 'debug'), |
529 ('q', 'quiet', None, 'quiet'), |
539 ('q', 'quiet', None, 'quiet'), |
560 except SignalInterrupt: |
570 except SignalInterrupt: |
561 u.warn("killed!\n") |
571 u.warn("killed!\n") |
562 except KeyboardInterrupt: |
572 except KeyboardInterrupt: |
563 u.warn("interrupted!\n") |
573 u.warn("interrupted!\n") |
564 except TypeError, inst: |
574 except TypeError, inst: |
|
575 import traceback |
565 # was this an argument error? |
576 # was this an argument error? |
566 tb = traceback.extract_tb(sys.exc_info()[2]) |
577 tb = traceback.extract_tb(sys.exc_info()[2]) |
567 if len(tb) > 2: # no |
578 if len(tb) > 2: # no |
568 raise |
579 raise |
569 u.warn("%s: invalid arguments\n" % i[0].__name__) |
580 u.warn("%s: invalid arguments\n" % i[0].__name__) |