equal
deleted
inserted
replaced
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 |