contrib/packaging/hgpackaging/cli.py
author Pierre-Yves David <pierre-yves.david@octobus.net>
Tue, 11 Mar 2025 02:29:42 +0100
branchstable
changeset 53042 cdd7bf612c7b
parent 49079 f40fb4c52594
permissions -rw-r--r--
bundle-spec: properly format boolean parameter (issue6960) This was breaking automatic clone bundle generation. This changeset fixes it and add a test to catch it in the future.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
43513
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     1
# cli.py - Command line interface for automation
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     2
#
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     3
# Copyright 2019 Gregory Szorc <gregory.szorc@gmail.com>
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     4
#
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     5
# This software may be used and distributed according to the terms of the
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     6
# GNU General Public License version 2 or any later version.
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     7
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     8
# no-check-code because Python 3 native.
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
     9
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    10
import argparse
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    11
import os
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    12
import pathlib
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    13
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    14
from . import (
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    15
    inno,
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    16
    wix,
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    17
)
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    18
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    19
HERE = pathlib.Path(os.path.abspath(os.path.dirname(__file__)))
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    20
SOURCE_DIR = HERE.parent.parent.parent
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    21
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    22
48848
17d5e25b8e78 packaging: remove py2exe / Python 2.7 support
Gregory Szorc <gregory.szorc@gmail.com>
parents: 47881
diff changeset
    23
def build_inno(pyoxidizer_target, iscc=None, version=None):
43513
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    24
    if iscc:
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    25
        iscc = pathlib.Path(iscc)
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    26
    else:
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    27
        iscc = (
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    28
            pathlib.Path(os.environ["ProgramFiles(x86)"])
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    29
            / "Inno Setup 5"
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    30
            / "ISCC.exe"
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    31
        )
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    32
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    33
    build_dir = SOURCE_DIR / "build"
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    34
48848
17d5e25b8e78 packaging: remove py2exe / Python 2.7 support
Gregory Szorc <gregory.szorc@gmail.com>
parents: 47881
diff changeset
    35
    inno.build_with_pyoxidizer(
17d5e25b8e78 packaging: remove py2exe / Python 2.7 support
Gregory Szorc <gregory.szorc@gmail.com>
parents: 47881
diff changeset
    36
        SOURCE_DIR, build_dir, pyoxidizer_target, iscc, version=version
17d5e25b8e78 packaging: remove py2exe / Python 2.7 support
Gregory Szorc <gregory.szorc@gmail.com>
parents: 47881
diff changeset
    37
    )
43513
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    38
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    39
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    40
def build_wix(
48848
17d5e25b8e78 packaging: remove py2exe / Python 2.7 support
Gregory Szorc <gregory.szorc@gmail.com>
parents: 47881
diff changeset
    41
    pyoxidizer_target,
43513
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    42
    name=None,
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    43
    version=None,
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    44
    sign_sn=None,
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    45
    sign_cert=None,
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    46
    sign_password=None,
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    47
    sign_timestamp_url=None,
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    48
    extra_wxs=None,
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    49
    extra_features=None,
47644
be37bb8d0c7c packaging: add command line flag to add extra vars to pyoxidizer
Augie Fackler <augie@google.com>
parents: 45942
diff changeset
    50
    extra_pyoxidizer_vars=None,
43513
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    51
):
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    52
    kwargs = {
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    53
        "source_dir": SOURCE_DIR,
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    54
        "version": version,
48848
17d5e25b8e78 packaging: remove py2exe / Python 2.7 support
Gregory Szorc <gregory.szorc@gmail.com>
parents: 47881
diff changeset
    55
        "target_triple": pyoxidizer_target,
17d5e25b8e78 packaging: remove py2exe / Python 2.7 support
Gregory Szorc <gregory.szorc@gmail.com>
parents: 47881
diff changeset
    56
        "extra_pyoxidizer_vars": extra_pyoxidizer_vars,
43513
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    57
    }
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    58
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    59
    if extra_wxs:
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    60
        kwargs["extra_wxs"] = dict(
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    61
            thing.split("=") for thing in extra_wxs.split(",")
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    62
        )
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    63
    if extra_features:
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    64
        kwargs["extra_features"] = extra_features.split(",")
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    65
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    66
    if sign_sn or sign_cert:
44765
a39984091380 packaging: integrate signing into run_wix_packaging()
Gregory Szorc <gregory.szorc@gmail.com>
parents: 44763
diff changeset
    67
        kwargs["signing_info"] = {
a39984091380 packaging: integrate signing into run_wix_packaging()
Gregory Szorc <gregory.szorc@gmail.com>
parents: 44763
diff changeset
    68
            "name": name,
a39984091380 packaging: integrate signing into run_wix_packaging()
Gregory Szorc <gregory.szorc@gmail.com>
parents: 44763
diff changeset
    69
            "subject_name": sign_sn,
a39984091380 packaging: integrate signing into run_wix_packaging()
Gregory Szorc <gregory.szorc@gmail.com>
parents: 44763
diff changeset
    70
            "cert_path": sign_cert,
a39984091380 packaging: integrate signing into run_wix_packaging()
Gregory Szorc <gregory.szorc@gmail.com>
parents: 44763
diff changeset
    71
            "cert_password": sign_password,
a39984091380 packaging: integrate signing into run_wix_packaging()
Gregory Szorc <gregory.szorc@gmail.com>
parents: 44763
diff changeset
    72
            "timestamp_url": sign_timestamp_url,
a39984091380 packaging: integrate signing into run_wix_packaging()
Gregory Szorc <gregory.szorc@gmail.com>
parents: 44763
diff changeset
    73
        }
43513
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    74
48848
17d5e25b8e78 packaging: remove py2exe / Python 2.7 support
Gregory Szorc <gregory.szorc@gmail.com>
parents: 47881
diff changeset
    75
    wix.build_installer_pyoxidizer(**kwargs)
43513
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    76
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    77
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    78
def get_parser():
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    79
    parser = argparse.ArgumentParser()
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    80
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    81
    subparsers = parser.add_subparsers()
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    82
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    83
    sp = subparsers.add_parser("inno", help="Build Inno Setup installer")
44763
94f4f2ec7dee packaging: support building Inno installer with PyOxidizer
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43513
diff changeset
    84
    sp.add_argument(
94f4f2ec7dee packaging: support building Inno installer with PyOxidizer
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43513
diff changeset
    85
        "--pyoxidizer-target",
94f4f2ec7dee packaging: support building Inno installer with PyOxidizer
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43513
diff changeset
    86
        choices={"i686-pc-windows-msvc", "x86_64-pc-windows-msvc"},
48848
17d5e25b8e78 packaging: remove py2exe / Python 2.7 support
Gregory Szorc <gregory.szorc@gmail.com>
parents: 47881
diff changeset
    87
        required=True,
44763
94f4f2ec7dee packaging: support building Inno installer with PyOxidizer
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43513
diff changeset
    88
        help="Build with PyOxidizer targeting this host triple",
94f4f2ec7dee packaging: support building Inno installer with PyOxidizer
Gregory Szorc <gregory.szorc@gmail.com>
parents: 43513
diff changeset
    89
    )
43513
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    90
    sp.add_argument("--iscc", help="path to iscc.exe to use")
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    91
    sp.add_argument(
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    92
        "--version",
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    93
        help="Mercurial version string to use "
49079
f40fb4c52594 packaging: add a missing parenthesis to help text
Matt Harbison <matt_harbison@yahoo.com>
parents: 48848
diff changeset
    94
        "(detected from __version__.py if not defined)",
43513
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    95
    )
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    96
    sp.set_defaults(func=build_inno)
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    97
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    98
    sp = subparsers.add_parser(
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
    99
        "wix", help="Build Windows installer with WiX Toolset"
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   100
    )
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   101
    sp.add_argument("--name", help="Application name", default="Mercurial")
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   102
    sp.add_argument(
44767
234882d17814 packaging: support building WiX installers with PyOxidizer
Gregory Szorc <gregory.szorc@gmail.com>
parents: 44765
diff changeset
   103
        "--pyoxidizer-target",
234882d17814 packaging: support building WiX installers with PyOxidizer
Gregory Szorc <gregory.szorc@gmail.com>
parents: 44765
diff changeset
   104
        choices={"i686-pc-windows-msvc", "x86_64-pc-windows-msvc"},
48848
17d5e25b8e78 packaging: remove py2exe / Python 2.7 support
Gregory Szorc <gregory.szorc@gmail.com>
parents: 47881
diff changeset
   105
        required=True,
44767
234882d17814 packaging: support building WiX installers with PyOxidizer
Gregory Szorc <gregory.szorc@gmail.com>
parents: 44765
diff changeset
   106
        help="Build with PyOxidizer targeting this host triple",
43513
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   107
    )
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   108
    sp.add_argument(
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   109
        "--sign-sn",
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   110
        help="Subject name (or fragment thereof) of certificate "
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   111
        "to use for signing",
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   112
    )
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   113
    sp.add_argument(
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   114
        "--sign-cert", help="Path to certificate to use for signing"
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   115
    )
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   116
    sp.add_argument("--sign-password", help="Password for signing certificate")
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   117
    sp.add_argument(
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   118
        "--sign-timestamp-url",
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   119
        help="URL of timestamp server to use for signing",
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   120
    )
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   121
    sp.add_argument("--version", help="Version string to use")
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   122
    sp.add_argument(
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   123
        "--extra-wxs", help="CSV of path_to_wxs_file=working_dir_for_wxs_file"
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   124
    )
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   125
    sp.add_argument(
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   126
        "--extra-features",
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   127
        help=(
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   128
            "CSV of extra feature names to include "
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   129
            "in the installer from the extra wxs files"
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   130
        ),
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   131
    )
47644
be37bb8d0c7c packaging: add command line flag to add extra vars to pyoxidizer
Augie Fackler <augie@google.com>
parents: 45942
diff changeset
   132
be37bb8d0c7c packaging: add command line flag to add extra vars to pyoxidizer
Augie Fackler <augie@google.com>
parents: 45942
diff changeset
   133
    sp.add_argument(
be37bb8d0c7c packaging: add command line flag to add extra vars to pyoxidizer
Augie Fackler <augie@google.com>
parents: 45942
diff changeset
   134
        "--extra-pyoxidizer-vars",
be37bb8d0c7c packaging: add command line flag to add extra vars to pyoxidizer
Augie Fackler <augie@google.com>
parents: 45942
diff changeset
   135
        help="json map of extra variables to pass to pyoxidizer",
be37bb8d0c7c packaging: add command line flag to add extra vars to pyoxidizer
Augie Fackler <augie@google.com>
parents: 45942
diff changeset
   136
    )
be37bb8d0c7c packaging: add command line flag to add extra vars to pyoxidizer
Augie Fackler <augie@google.com>
parents: 45942
diff changeset
   137
43513
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   138
    sp.set_defaults(func=build_wix)
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   139
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   140
    return parser
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   141
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   142
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   143
def main():
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   144
    parser = get_parser()
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   145
    args = parser.parse_args()
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   146
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   147
    if not hasattr(args, "func"):
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   148
        parser.print_help()
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   149
        return
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   150
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   151
    kwargs = dict(vars(args))
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   152
    del kwargs["func"]
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   153
081a77df7bc6 packaging: consolidate CLI functionality into packaging.py
Gregory Szorc <gregory.szorc@gmail.com>
parents:
diff changeset
   154
    args.func(**kwargs)