##// END OF EJS Templates
Restructure option handling...
mpm@selenic.com -
r592:74175ce8 default
parent child Browse files
Show More
@@ -978,6 +978,12 b' def run():'
978 sys.exit(dispatch(sys.argv[1:]))
978 sys.exit(dispatch(sys.argv[1:]))
979
979
980 def dispatch(args):
980 def dispatch(args):
981 signal.signal(signal.SIGTERM, catchterm)
982
983 def get_ui():
984 return ui.ui(options["verbose"], options["debug"], options["quiet"],
985 not options["noninteractive"])
986
981 options = {}
987 options = {}
982 opts = [('v', 'verbose', None, 'verbose'),
988 opts = [('v', 'verbose', None, 'verbose'),
983 ('', 'debug', None, 'debug'),
989 ('', 'debug', None, 'debug'),
@@ -989,38 +995,54 b' def dispatch(args):'
989 ('', 'version', None, 'output version information and exit'),
995 ('', 'version', None, 'output version information and exit'),
990 ]
996 ]
991
997
998 try:
992 args = fancyopts.fancyopts(args, opts, options,
999 args = fancyopts.fancyopts(args, opts, options,
993 'hg [options] <command> [options] [files]')
1000 'hg [options] <command> [options] [files]')
1001 except fancyopts.getopt.GetoptError, inst:
1002 u = ui.ui()
1003 u.warn("hg: %s\n" % (inst))
1004 sys.exit(-1)
994
1005
995 if not args:
1006 if not args:
996 cmd = "help"
1007 cmd = "help"
997 else:
1008 else:
998 cmd, args = args[0], args[1:]
1009 cmd, args = args[0], args[1:]
999
1010
1000 u = ui.ui(options["verbose"], options["debug"], options["quiet"],
1001 not options["noninteractive"])
1002
1003 if options["version"]:
1011 if options["version"]:
1004 show_version(u)
1012 show_version(get_ui())
1005 sys.exit(0)
1013 sys.exit(0)
1006
1014
1007 try:
1015 try:
1008 i = find(cmd)
1016 i = find(cmd)
1009 except UnknownCommand:
1017 except UnknownCommand:
1018 u = get_ui()
1010 u.warn("hg: unknown command '%s'\n" % cmd)
1019 u.warn("hg: unknown command '%s'\n" % cmd)
1011 help(u)
1020 help(u)
1012 sys.exit(1)
1021 sys.exit(1)
1013
1022
1014 signal.signal(signal.SIGTERM, catchterm)
1023 # combine global options into local
1024 c = list(i[1])
1025 l = len(c)
1026 for o in opts:
1027 c.append((o[0], o[1], options[o[1]], o[3]))
1015
1028
1016 cmdoptions = {}
1029 cmdoptions = {}
1017 try:
1030 try:
1018 args = fancyopts.fancyopts(args, i[1], cmdoptions, i[2])
1031 args = fancyopts.fancyopts(args, c, cmdoptions, i[2])
1019 except fancyopts.getopt.GetoptError, inst:
1032 except fancyopts.getopt.GetoptError, inst:
1033 u = get_ui()
1020 u.warn("hg %s: %s\n" % (cmd, inst))
1034 u.warn("hg %s: %s\n" % (cmd, inst))
1021 help(u, cmd)
1035 help(u, cmd)
1022 sys.exit(-1)
1036 sys.exit(-1)
1023
1037
1038 # separate global options back out
1039 for o in opts:
1040 n = o[1]
1041 options[n] = cmdoptions[n]
1042 del cmdoptions[n]
1043
1044 u = get_ui()
1045
1024 try:
1046 try:
1025 try:
1047 try:
1026 if cmd not in norepo.split():
1048 if cmd not in norepo.split():
General Comments 0
You need to be logged in to leave comments. Login now