1#!/usr/bin/env python
2#
3# Copyright 2018 - The Android Open Source Project
4#
5# Licensed under the Apache License, Version 2.0 (the "License");
6# you may not use this file except in compliance with the License.
7# You may obtain a copy of the License at
8#
9#     http://www.apache.org/licenses/LICENSE-2.0
10#
11# Unless required by applicable law or agreed to in writing, software
12# distributed under the License is distributed on an "AS IS" BASIS,
13# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14# See the License for the specific language governing permissions and
15# limitations under the License.
16r"""Setup args.
17
18Defines the setup arg parser that holds setup specific args.
19"""
20
21CMD_SETUP = "setup"
22
23
24def GetSetupArgParser(subparser):
25    """Return the setup arg parser.
26
27    Args:
28       subparser: argparse.ArgumentParser that is attached to main acloud cmd.
29
30    Returns:
31        argparse.ArgumentParser with setup options defined.
32    """
33    setup_parser = subparser.add_parser(CMD_SETUP)
34    setup_parser.required = False
35    setup_parser.set_defaults(which=CMD_SETUP)
36    setup_parser.add_argument(
37        "--host",
38        action="store_true",
39        dest="host",
40        required=False,
41        help="Setup host to run local instance of an Android Virtual Device. "
42        "Must explicitly set to kick off host setup. Automatically installs "
43        "host base packages as well")
44    setup_parser.add_argument(
45        "--host-base",
46        action="store_true",
47        dest="host_base",
48        required=False,
49        help="Install base packages on the host.")
50    setup_parser.add_argument(
51        "--gcp-init",
52        action="store_true",
53        dest="gcp_init",
54        required=False,
55        help="Setup Google Cloud project name and enable required GCP APIs."
56        "E.G. Google Cloud Storage/ Internal Android Build/ Compute Engine")
57    setup_parser.add_argument(
58        "--force",
59        action="store_true",
60        dest="force",
61        required=False,
62        help="Force the setup steps even if it's not required.")
63
64    return setup_parser
65