1554 try: |
1554 try: |
1555 args = fancyopts.fancyopts(args, globalopts, options) |
1555 args = fancyopts.fancyopts(args, globalopts, options) |
1556 except fancyopts.getopt.GetoptError, inst: |
1556 except fancyopts.getopt.GetoptError, inst: |
1557 raise ParseError(None, inst) |
1557 raise ParseError(None, inst) |
1558 |
1558 |
1559 if options["version"]: |
1559 if args: |
1560 return ("version", show_version, [], options, cmdoptions) |
1560 cmd, args = args[0], args[1:] |
1561 elif not args: |
1561 i = find(cmd)[1] |
1562 return ("help", help_, ["shortlist"], options, cmdoptions) |
1562 c = list(i[1]) |
1563 else: |
1563 else: |
1564 cmd, args = args[0], args[1:] |
1564 cmd = None |
1565 |
1565 c = [] |
1566 i = find(cmd)[1] |
|
1567 |
1566 |
1568 # combine global options into local |
1567 # combine global options into local |
1569 c = list(i[1]) |
|
1570 for o in globalopts: |
1568 for o in globalopts: |
1571 c.append((o[0], o[1], options[o[1]], o[3])) |
1569 c.append((o[0], o[1], options[o[1]], o[3])) |
1572 |
1570 |
1573 try: |
1571 try: |
1574 args = fancyopts.fancyopts(args, c, cmdoptions) |
1572 args = fancyopts.fancyopts(args, c, cmdoptions) |
1579 for o in globalopts: |
1577 for o in globalopts: |
1580 n = o[1] |
1578 n = o[1] |
1581 options[n] = cmdoptions[n] |
1579 options[n] = cmdoptions[n] |
1582 del cmdoptions[n] |
1580 del cmdoptions[n] |
1583 |
1581 |
1584 return (cmd, i[0], args, options, cmdoptions) |
1582 return (cmd, cmd and i[0] or None, args, options, cmdoptions) |
1585 |
1583 |
1586 def dispatch(args): |
1584 def dispatch(args): |
1587 signal.signal(signal.SIGTERM, catchterm) |
1585 signal.signal(signal.SIGTERM, catchterm) |
1588 try: |
1586 try: |
1589 signal.signal(signal.SIGHUP, catchterm) |
1587 signal.signal(signal.SIGHUP, catchterm) |
1632 u = ui.ui(options["verbose"], options["debug"], options["quiet"], |
1630 u = ui.ui(options["verbose"], options["debug"], options["quiet"], |
1633 not options["noninteractive"]) |
1631 not options["noninteractive"]) |
1634 |
1632 |
1635 try: |
1633 try: |
1636 try: |
1634 try: |
|
1635 if options['version']: |
|
1636 show_version(u) |
|
1637 sys.exit(0) |
|
1638 elif not cmd: |
|
1639 help_(u, 'shortlist') |
|
1640 sys.exit(0) |
|
1641 |
1637 if cmd not in norepo.split(): |
1642 if cmd not in norepo.split(): |
1638 path = options["repository"] or "" |
1643 path = options["repository"] or "" |
1639 repo = hg.repository(ui=u, path=path) |
1644 repo = hg.repository(ui=u, path=path) |
1640 d = lambda: func(u, repo, *args, **cmdoptions) |
1645 d = lambda: func(u, repo, *args, **cmdoptions) |
1641 else: |
1646 else: |