Mercurial > public > mercurial-scm > hg
comparison mercurial/commands.py @ 4547:8774d2cafe4d
dispatch: pull final command execution into its own function
author | Matt Mackall <mpm@selenic.com> |
---|---|
date | Mon, 11 Jun 2007 21:09:24 -0500 |
parents | 5c8130691692 |
children | c9fcebbfc422 |
comparison
equal
deleted
inserted
replaced
4546:5c8130691692 | 4547:8774d2cafe4d |
---|---|
3273 t = get_times() | 3273 t = get_times() |
3274 u.warn(_("Time: real %.3f secs (user %.3f+%.3f sys %.3f+%.3f)\n") % | 3274 u.warn(_("Time: real %.3f secs (user %.3f+%.3f sys %.3f+%.3f)\n") % |
3275 (t[4]-s[4], t[0]-s[0], t[2]-s[2], t[1]-s[1], t[3]-s[3])) | 3275 (t[4]-s[4], t[0]-s[0], t[2]-s[2], t[1]-s[1], t[3]-s[3])) |
3276 atexit.register(print_time) | 3276 atexit.register(print_time) |
3277 | 3277 |
3278 if options['cwd']: | |
3279 os.chdir(options['cwd']) | |
3280 | |
3281 u.updateopts(options["verbose"], options["debug"], options["quiet"], | |
3282 not options["noninteractive"], options["traceback"], | |
3283 parseconfig(options["config"])) | |
3284 | |
3285 path = u.expandpath(options["repository"]) or "" | |
3286 repo = path and hg.repository(u, path=path) or None | |
3287 if repo and not repo.local(): | |
3288 raise util.Abort(_("repository '%s' is not local") % path) | |
3289 | |
3290 if options['help']: | |
3291 return help_(u, cmd, options['version']) | |
3292 elif options['version']: | |
3293 return version_(u) | |
3294 elif not cmd: | |
3295 return help_(u, 'shortlist') | |
3296 | |
3297 if cmd not in norepo.split(): | |
3298 try: | |
3299 if not repo: | |
3300 repo = hg.repository(u, path=path) | |
3301 u = repo.ui | |
3302 except hg.RepoError: | |
3303 if cmd not in optionalrepo.split(): | |
3304 raise | |
3305 d = lambda: func(u, repo, *args, **cmdoptions) | |
3306 else: | |
3307 d = lambda: func(u, *args, **cmdoptions) | |
3308 | |
3309 return runcommand(u, options, d) | |
3310 | |
3311 def runcommand(u, options, d): | |
3278 # enter the debugger before command execution | 3312 # enter the debugger before command execution |
3279 if options['debugger']: | 3313 if options['debugger']: |
3280 pdb.set_trace() | 3314 pdb.set_trace() |
3281 | 3315 |
3282 try: | 3316 try: |
3283 if options['cwd']: | |
3284 os.chdir(options['cwd']) | |
3285 | |
3286 u.updateopts(options["verbose"], options["debug"], options["quiet"], | |
3287 not options["noninteractive"], options["traceback"], | |
3288 parseconfig(options["config"])) | |
3289 | |
3290 path = u.expandpath(options["repository"]) or "" | |
3291 repo = path and hg.repository(u, path=path) or None | |
3292 if repo and not repo.local(): | |
3293 raise util.Abort(_("repository '%s' is not local") % path) | |
3294 | |
3295 if options['help']: | |
3296 return help_(u, cmd, options['version']) | |
3297 elif options['version']: | |
3298 return version_(u) | |
3299 elif not cmd: | |
3300 return help_(u, 'shortlist') | |
3301 | |
3302 if cmd not in norepo.split(): | |
3303 try: | |
3304 if not repo: | |
3305 repo = hg.repository(u, path=path) | |
3306 u = repo.ui | |
3307 except hg.RepoError: | |
3308 if cmd not in optionalrepo.split(): | |
3309 raise | |
3310 d = lambda: func(u, repo, *args, **cmdoptions) | |
3311 else: | |
3312 d = lambda: func(u, *args, **cmdoptions) | |
3313 | |
3314 try: | 3317 try: |
3315 if options['profile']: | 3318 if options['profile']: |
3316 import hotshot, hotshot.stats | 3319 import hotshot, hotshot.stats |
3317 prof = hotshot.Profile("hg.prof") | 3320 prof = hotshot.Profile("hg.prof") |
3318 try: | 3321 try: |