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