mercurial/commands.py
changeset 249 619e775aa7f9
parent 248 b7645b3c86ff
child 250 45ee7c4cae4f
equal deleted inserted replaced
248:b7645b3c86ff 249:619e775aa7f9
     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__)