mercurial/commands.py
changeset 1047 a0538ea1ac50
parent 1046 772507daaa17
child 1048 7fbb440b2e63
equal deleted inserted replaced
1046:772507daaa17 1047:a0538ea1ac50
  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: