Mercurial > hg
view contrib/packaging/wix/build.py @ 42583:b9bc47211cf5
abort: added support for rebase
This adds support of `rebase` to `hg abort` plan.
An independent abort logic for `rebase` is created
under `abortrebase()` function. For this a seperate
`rebaseruntime` object is created under the function to
handle an unfinished `rebasestate` and abort that using
abort logic under `_prepareabortorcontinue`.
Results of tests are shown.
Differential Revision: https://phab.mercurial-scm.org/D6568
author | Taapas Agrawal <taapas2897@gmail.com> |
---|---|
date | Sun, 23 Jun 2019 23:11:35 +0530 |
parents | 57645939df59 |
children | 2372284d9457 |
line wrap: on
line source
#!/usr/bin/env python3 # Copyright 2019 Gregory Szorc <gregory.szorc@gmail.com> # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. # no-check-code because Python 3 native. """Code to build Mercurial WiX installer.""" import argparse import os import pathlib import sys if __name__ == '__main__': parser = argparse.ArgumentParser() parser.add_argument('--name', help='Application name', default='Mercurial') parser.add_argument('--python', help='Path to Python executable to use', required=True) parser.add_argument('--sign-sn', help='Subject name (or fragment thereof) of certificate ' 'to use for signing') parser.add_argument('--sign-cert', help='Path to certificate to use for signing') parser.add_argument('--sign-password', help='Password for signing certificate') parser.add_argument('--sign-timestamp-url', help='URL of timestamp server to use for signing') parser.add_argument('--version', help='Version string to use') parser.add_argument('--extra-packages-script', help=('Script to execute to include extra packages in ' 'py2exe binary.')) parser.add_argument('--extra-wxs', help='CSV of path_to_wxs_file=working_dir_for_wxs_file') parser.add_argument('--extra-features', help=('CSV of extra feature names to include ' 'in the installer from the extra wxs files')) args = parser.parse_args() here = pathlib.Path(os.path.abspath(os.path.dirname(__file__))) source_dir = here.parent.parent.parent sys.path.insert(0, str(source_dir / 'contrib' / 'packaging')) from hgpackaging.wix import ( build_installer, build_signed_installer, ) fn = build_installer kwargs = { 'source_dir': source_dir, 'python_exe': pathlib.Path(args.python), 'version': args.version, } if not os.path.isabs(args.python): raise Exception('--python arg must be an absolute path') if args.extra_packages_script: kwargs['extra_packages_script'] = args.extra_packages_script if args.extra_wxs: kwargs['extra_wxs'] = dict( thing.split("=") for thing in args.extra_wxs.split(',')) if args.extra_features: kwargs['extra_features'] = args.extra_features.split(',') if args.sign_sn or args.sign_cert: fn = build_signed_installer kwargs['name'] = args.name kwargs['subject_name'] = args.sign_sn kwargs['cert_path'] = args.sign_cert kwargs['cert_password'] = args.sign_password kwargs['timestamp_url'] = args.sign_timestamp_url fn(**kwargs)