mercurial/dispatch.py
changeset 37995 6f9ac3cb0987
parent 37994 e9c588802529
child 38022 48853a927757
equal deleted inserted replaced
37994:e9c588802529 37995:6f9ac3cb0987
    85     "run the command in sys.argv"
    85     "run the command in sys.argv"
    86     initstdio()
    86     initstdio()
    87     req = request(pycompat.sysargv[1:])
    87     req = request(pycompat.sysargv[1:])
    88     err = None
    88     err = None
    89     try:
    89     try:
    90         status = dispatch(req) or 0
    90         status = dispatch(req)
    91     except error.StdioError as e:
    91     except error.StdioError as e:
    92         err = e
    92         err = e
    93         status = -1
    93         status = -1
    94 
    94 
    95     # In all cases we try to flush stdio streams.
    95     # In all cases we try to flush stdio streams.
   173 
   173 
   174 def _formatargs(args):
   174 def _formatargs(args):
   175     return ' '.join(procutil.shellquote(a) for a in args)
   175     return ' '.join(procutil.shellquote(a) for a in args)
   176 
   176 
   177 def dispatch(req):
   177 def dispatch(req):
   178     "run the command specified in req.args"
   178     """run the command specified in req.args; returns an integer status code"""
   179     if req.ferr:
   179     if req.ferr:
   180         ferr = req.ferr
   180         ferr = req.ferr
   181     elif req.ui:
   181     elif req.ui:
   182         ferr = req.ui.ferr
   182         ferr = req.ui.ferr
   183     else:
   183     else:
   206         _formatparse(ferr.write, inst)
   206         _formatparse(ferr.write, inst)
   207         return -1
   207         return -1
   208 
   208 
   209     msg = _formatargs(req.args)
   209     msg = _formatargs(req.args)
   210     starttime = util.timer()
   210     starttime = util.timer()
   211     ret = None
   211     ret = -1
   212     try:
   212     try:
   213         ret = _runcatch(req)
   213         ret = _runcatch(req) or 0
   214     except error.ProgrammingError as inst:
   214     except error.ProgrammingError as inst:
   215         req.ui.warn(_('** ProgrammingError: %s\n') % inst)
   215         req.ui.warn(_('** ProgrammingError: %s\n') % inst)
   216         if inst.hint:
   216         if inst.hint:
   217             req.ui.warn(_('** (%s)\n') % inst.hint)
   217             req.ui.warn(_('** (%s)\n') % inst.hint)
   218         raise
   218         raise