]>
Commit | Line | Data |
---|---|---|
a6dccbc0 MT |
1 | #!/usr/bin/python |
2 | ||
3 | import sys | |
0c294e96 MT |
4 | try: |
5 | import argparse | |
6 | except ImportError: | |
7 | import naoki.argparse as argparse | |
a6dccbc0 MT |
8 | |
9 | import naoki | |
10 | ||
0c294e96 MT |
11 | arches = naoki.arches |
12 | config = naoki.config | |
13 | ||
14 | # silence Python 2.6 buggy warnings about Exception.message | |
15 | if sys.version_info[:2] == (2, 6): | |
16 | import warnings | |
17 | warnings.filterwarnings( | |
18 | action="ignore", | |
19 | message="BaseException.message has been deprecated as of Python 2.6", | |
20 | category=DeprecationWarning) | |
21 | ||
22 | parser = argparse.ArgumentParser( | |
23 | description = "Command to control the naoki buildsystem" | |
24 | ) | |
25 | ||
26 | parser.add_argument("-q", "--quiet", action="store_true", | |
27 | help="run in silent mode") | |
28 | parser.add_argument("-a", "--arch", default=arches.default["name"], | |
29 | help="set architecture") | |
30 | parser.add_argument("--toolchain", action="store_true", | |
31 | help="toolchain mode") | |
32 | ||
33 | subparsers = parser.add_subparsers(help="sub-command help") | |
34 | ||
35 | parser_build = subparsers.add_parser("build", help="build command") | |
36 | parser_build.set_defaults(action="build") | |
37 | parser_build.add_argument("packages", nargs="+", help="packages...") | |
38 | ||
39 | parser_toolchain = subparsers.add_parser("toolchain", help="toolchain command") | |
40 | parser_toolchain.set_defaults(action="toolchain") | |
41 | ||
42 | subparsers_toolchain = parser_toolchain.add_subparsers(help="sub-command help") | |
43 | parser_toolchain_build = subparsers_toolchain.add_parser("build", | |
44 | help="build toolchain") | |
45 | parser_toolchain_build.set_defaults(subaction="build") | |
46 | ||
47 | parser_package = subparsers.add_parser("package", help="package command") | |
48 | parser_package.set_defaults(action="package") | |
49 | ||
50 | subparsers_package = parser_package.add_subparsers(help="sub-command help") | |
51 | parser_package_tree = subparsers_package.add_parser("tree", | |
52 | help="show package tree") | |
53 | parser_package_tree.set_defaults(subaction="tree") | |
54 | ||
55 | parser_package_list = subparsers_package.add_parser("list", | |
56 | help="show package list") | |
57 | parser_package_list.set_defaults(subaction="list") | |
58 | ||
59 | # parse the command line | |
60 | args = parser.parse_args() | |
61 | ||
62 | # Are we in the toolchain mode? | |
63 | config["toolchain"] = args.toolchain | |
64 | ||
65 | # Set default arch | |
66 | arches.set(args.arch) | |
67 | ||
68 | kwargs = {} | |
69 | for key, val in args._get_kwargs(): | |
70 | kwargs[key] = val | |
a6dccbc0 MT |
71 | |
72 | try: | |
0c294e96 MT |
73 | n = naoki.Naoki() |
74 | n(**kwargs) | |
75 | exitStatus = 0 | |
a6dccbc0 MT |
76 | |
77 | except (SystemExit,): | |
78 | raise | |
79 | ||
80 | except (KeyboardInterrupt,): | |
81 | exitStatus = 7 | |
82 | n.log.error("Exiting on user interrupt, <CTRL>-C") | |
83 | ||
84 | sys.exit(exitStatus) |