blob: 5c5c65da2a43e4c52b8982e8347b4f7aa3b67d2a [file] [log] [blame]
Alex Klein69c642e2023-02-16 14:47:55 -07001# Copyright 2023 The ChromiumOS Authors
2# Use of this source code is governed by a BSD-style license that can be
3# found in the LICENSE file.
4
5"""Skeleton for new scripts or to allow quickly implementing temp scripts.
6
7TODO(skeleton): Rewrite file docblock.
8"""
9import argparse
10from typing import List, Optional
11
12from chromite.lib import commandline
13
14
15def get_parser() -> commandline.ArgumentParser:
16 """Build the argument parser."""
17 parser = commandline.ArgumentParser(description=__doc__)
18
19 # TODO(skeleton): Delete.
20 _add_local_script_args(parser)
21 # TODO(skeleton): Add arguments.
22
23 return parser
24
25
26def _add_local_script_args(parser: commandline.ArgumentParser) -> None:
27 """Add a bunch of commonly used arguments to the parser.
28
29 This is for hacking up quick, local scripts, and not intended to be kept
30 when used as a skeleton for a permanent script.
31 TODO(skeleton): Delete function.
32 """
33 parser.add_argument(
34 "-b", "--board", "--build-target", help="Build target name."
35 )
36 parser.add_argument("--chroot", type="path", help="Chroot path.")
37 parser.add_argument("--input", type="path", help="Input path.")
38 parser.add_argument("--output", type="path", help="Output path.")
39 parser.add_argument("-p", "--package", help="Package.")
40 parser.add_argument(
41 "--sdk", action="store_true", default=False, help="For the SDK."
42 )
43 parser.add_argument("--sysroot", type="path", help="Sysroot path.")
44
45 parser.add_argument("packages", nargs="*", default=[])
46
47
48def parse_arguments(argv: List) -> argparse.Namespace:
49 """Parse and validate arguments."""
50 parser = get_parser()
51 opts = parser.parse_args(argv)
52
53 opts.Freeze()
54 return opts
55
56
57def main(argv: Optional[List[str]]) -> Optional[int]:
58 """Main."""
59 # Uncomment for inside-only scripts.
60 # TODO(skeleton) Delete or uncomment.
61 # commandline.RunInsideChroot()
62
63 opts = parse_arguments(argv)