Show More
@@ -1,74 +1,74 b'' | |||||
1 | #!/usr/bin/env python3 |
|
1 | #!/usr/bin/env python3 | |
2 | # |
|
2 | # | |
3 | # packaging.py - Mercurial packaging functionality |
|
3 | # packaging.py - Mercurial packaging functionality | |
4 | # |
|
4 | # | |
5 | # Copyright 2019 Gregory Szorc <gregory.szorc@gmail.com> |
|
5 | # Copyright 2019 Gregory Szorc <gregory.szorc@gmail.com> | |
6 | # |
|
6 | # | |
7 | # This software may be used and distributed according to the terms of the |
|
7 | # This software may be used and distributed according to the terms of the | |
8 | # GNU General Public License version 2 or any later version. |
|
8 | # GNU General Public License version 2 or any later version. | |
9 |
|
9 | |||
10 | import os |
|
10 | import os | |
11 | import pathlib |
|
11 | import pathlib | |
12 | import subprocess |
|
12 | import subprocess | |
13 | import sys |
|
13 | import sys | |
14 | import venv |
|
14 | import venv | |
15 |
|
15 | |||
16 |
|
16 | |||
17 | HERE = pathlib.Path(os.path.abspath(__file__)).parent |
|
17 | HERE = pathlib.Path(os.path.abspath(__file__)).parent | |
18 | REQUIREMENTS_TXT = HERE / "requirements.txt" |
|
18 | REQUIREMENTS_TXT = HERE / "requirements.txt" | |
19 | SOURCE_DIR = HERE.parent.parent |
|
19 | SOURCE_DIR = HERE.parent.parent | |
20 | VENV = SOURCE_DIR / "build" / "venv-packaging" |
|
20 | VENV = SOURCE_DIR / "build" / "venv-packaging" | |
21 |
|
21 | |||
22 |
|
22 | |||
23 | def bootstrap(): |
|
23 | def bootstrap(): | |
24 | venv_created = not VENV.exists() |
|
24 | venv_created = not VENV.exists() | |
25 |
|
25 | |||
26 | VENV.parent.mkdir(exist_ok=True) |
|
26 | VENV.parent.mkdir(exist_ok=True) | |
27 |
|
27 | |||
28 | venv.create(VENV, with_pip=True) |
|
28 | venv.create(VENV, with_pip=True) | |
29 |
|
29 | |||
30 | if os.name == "nt": |
|
30 | if os.name == "nt": | |
31 | venv_bin = VENV / "Scripts" |
|
31 | venv_bin = VENV / "Scripts" | |
32 | pip = venv_bin / "pip.exe" |
|
32 | pip = venv_bin / "pip.exe" | |
33 | python = venv_bin / "python.exe" |
|
33 | python = venv_bin / "python.exe" | |
34 | else: |
|
34 | else: | |
35 | venv_bin = VENV / "bin" |
|
35 | venv_bin = VENV / "bin" | |
36 | pip = venv_bin / "pip" |
|
36 | pip = venv_bin / "pip" | |
37 | python = venv_bin / "python" |
|
37 | python = venv_bin / "python" | |
38 |
|
38 | |||
39 | args = [ |
|
39 | args = [ | |
40 | str(pip), |
|
40 | str(pip), | |
41 | "install", |
|
41 | "install", | |
42 | "-r", |
|
42 | "-r", | |
43 | str(REQUIREMENTS_TXT), |
|
43 | str(REQUIREMENTS_TXT), | |
44 | "--disable-pip-version-check", |
|
44 | "--disable-pip-version-check", | |
45 | ] |
|
45 | ] | |
46 |
|
46 | |||
47 | if not venv_created: |
|
47 | if not venv_created: | |
48 | args.append("-q") |
|
48 | args.append("-q") | |
49 |
|
49 | |||
50 | subprocess.run(args, check=True) |
|
50 | subprocess.run(args, check=True) | |
51 |
|
51 | |||
52 | os.environ["HGPACKAGING_BOOTSTRAPPED"] = "1" |
|
52 | os.environ["HGPACKAGING_BOOTSTRAPPED"] = "1" | |
53 | os.environ["PATH"] = "%s%s%s" % (venv_bin, os.pathsep, os.environ["PATH"]) |
|
53 | os.environ["PATH"] = "%s%s%s" % (venv_bin, os.pathsep, os.environ["PATH"]) | |
54 |
|
54 | |||
55 | subprocess.run([str(python), __file__] + sys.argv[1:], check=True) |
|
55 | subprocess.run([str(python), __file__] + sys.argv[1:], check=True) | |
56 |
|
56 | |||
57 |
|
57 | |||
58 | def run(): |
|
58 | def run(): | |
59 | import hgpackaging.cli as cli |
|
59 | import hgpackaging.cli as cli | |
60 |
|
60 | |||
61 | # Need to strip off main Python executable. |
|
61 | # Need to strip off main Python executable. | |
62 | cli.main() |
|
62 | cli.main() | |
63 |
|
63 | |||
64 |
|
64 | |||
65 | if __name__ == "__main__": |
|
65 | if __name__ == "__main__": | |
66 | try: |
|
66 | try: | |
67 | if "HGPACKAGING_BOOTSTRAPPED" not in os.environ: |
|
67 | if "HGPACKAGING_BOOTSTRAPPED" not in os.environ: | |
68 | bootstrap() |
|
68 | bootstrap() | |
69 | else: |
|
69 | else: | |
70 | run() |
|
70 | run() | |
71 | except subprocess.CalledProcessError as e: |
|
71 | except subprocess.CalledProcessError as e: | |
72 | sys.exit(e.returncode) |
|
72 | sys.exit(e.returncode) | |
73 | except KeyboardInterrupt: |
|
73 | except KeyboardInterrupt: | |
74 | sys.exit(1) |
|
74 | sys.exit(1) |
@@ -1,39 +1,39 b'' | |||||
1 |
# |
|
1 | # | |
2 |
# This file is autogenerated by pip-compile |
|
2 | # This file is autogenerated by pip-compile | |
3 |
# To update, run: |
|
3 | # To update, run: | |
4 |
# |
|
4 | # | |
5 |
# pip-compile --generate-hashes --output-file=contrib/packaging/requirements.txt contrib/packaging/requirements.txt.in |
|
5 | # pip-compile --generate-hashes --output-file=contrib/packaging/requirements.txt contrib/packaging/requirements.txt.in | |
6 |
# |
|
6 | # | |
7 | jinja2==2.10.3 \ |
|
7 | jinja2==2.10.3 \ | |
8 | --hash=sha256:74320bb91f31270f9551d46522e33af46a80c3d619f4a4bf42b3164d30b5911f \ |
|
8 | --hash=sha256:74320bb91f31270f9551d46522e33af46a80c3d619f4a4bf42b3164d30b5911f \ | |
9 |
--hash=sha256:9fe95f19286cfefaa917656583d020be14e7859c6b0252588391e47db34527de |
|
9 | --hash=sha256:9fe95f19286cfefaa917656583d020be14e7859c6b0252588391e47db34527de | |
10 | markupsafe==1.1.1 \ |
|
10 | markupsafe==1.1.1 \ | |
11 | --hash=sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473 \ |
|
11 | --hash=sha256:00bc623926325b26bb9605ae9eae8a215691f33cae5df11ca5424f06f2d1f473 \ | |
12 | --hash=sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161 \ |
|
12 | --hash=sha256:09027a7803a62ca78792ad89403b1b7a73a01c8cb65909cd876f7fcebd79b161 \ | |
13 | --hash=sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235 \ |
|
13 | --hash=sha256:09c4b7f37d6c648cb13f9230d847adf22f8171b1ccc4d5682398e77f40309235 \ | |
14 | --hash=sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5 \ |
|
14 | --hash=sha256:1027c282dad077d0bae18be6794e6b6b8c91d58ed8a8d89a89d59693b9131db5 \ | |
15 | --hash=sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff \ |
|
15 | --hash=sha256:24982cc2533820871eba85ba648cd53d8623687ff11cbb805be4ff7b4c971aff \ | |
16 | --hash=sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b \ |
|
16 | --hash=sha256:29872e92839765e546828bb7754a68c418d927cd064fd4708fab9fe9c8bb116b \ | |
17 | --hash=sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1 \ |
|
17 | --hash=sha256:43a55c2930bbc139570ac2452adf3d70cdbb3cfe5912c71cdce1c2c6bbd9c5d1 \ | |
18 | --hash=sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e \ |
|
18 | --hash=sha256:46c99d2de99945ec5cb54f23c8cd5689f6d7177305ebff350a58ce5f8de1669e \ | |
19 | --hash=sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183 \ |
|
19 | --hash=sha256:500d4957e52ddc3351cabf489e79c91c17f6e0899158447047588650b5e69183 \ | |
20 | --hash=sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66 \ |
|
20 | --hash=sha256:535f6fc4d397c1563d08b88e485c3496cf5784e927af890fb3c3aac7f933ec66 \ | |
21 | --hash=sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1 \ |
|
21 | --hash=sha256:62fe6c95e3ec8a7fad637b7f3d372c15ec1caa01ab47926cfdf7a75b40e0eac1 \ | |
22 | --hash=sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1 \ |
|
22 | --hash=sha256:6dd73240d2af64df90aa7c4e7481e23825ea70af4b4922f8ede5b9e35f78a3b1 \ | |
23 | --hash=sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e \ |
|
23 | --hash=sha256:717ba8fe3ae9cc0006d7c451f0bb265ee07739daf76355d06366154ee68d221e \ | |
24 | --hash=sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b \ |
|
24 | --hash=sha256:79855e1c5b8da654cf486b830bd42c06e8780cea587384cf6545b7d9ac013a0b \ | |
25 | --hash=sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905 \ |
|
25 | --hash=sha256:7c1699dfe0cf8ff607dbdcc1e9b9af1755371f92a68f706051cc8c37d447c905 \ | |
26 | --hash=sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735 \ |
|
26 | --hash=sha256:88e5fcfb52ee7b911e8bb6d6aa2fd21fbecc674eadd44118a9cc3863f938e735 \ | |
27 | --hash=sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d \ |
|
27 | --hash=sha256:8defac2f2ccd6805ebf65f5eeb132adcf2ab57aa11fdf4c0dd5169a004710e7d \ | |
28 | --hash=sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e \ |
|
28 | --hash=sha256:98c7086708b163d425c67c7a91bad6e466bb99d797aa64f965e9d25c12111a5e \ | |
29 | --hash=sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d \ |
|
29 | --hash=sha256:9add70b36c5666a2ed02b43b335fe19002ee5235efd4b8a89bfcf9005bebac0d \ | |
30 | --hash=sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c \ |
|
30 | --hash=sha256:9bf40443012702a1d2070043cb6291650a0841ece432556f784f004937f0f32c \ | |
31 | --hash=sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21 \ |
|
31 | --hash=sha256:ade5e387d2ad0d7ebf59146cc00c8044acbd863725f887353a10df825fc8ae21 \ | |
32 | --hash=sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2 \ |
|
32 | --hash=sha256:b00c1de48212e4cc9603895652c5c410df699856a2853135b3967591e4beebc2 \ | |
33 | --hash=sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5 \ |
|
33 | --hash=sha256:b1282f8c00509d99fef04d8ba936b156d419be841854fe901d8ae224c59f0be5 \ | |
34 | --hash=sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b \ |
|
34 | --hash=sha256:b2051432115498d3562c084a49bba65d97cf251f5a331c64a12ee7e04dacc51b \ | |
35 | --hash=sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6 \ |
|
35 | --hash=sha256:ba59edeaa2fc6114428f1637ffff42da1e311e29382d81b339c1817d37ec93c6 \ | |
36 | --hash=sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f \ |
|
36 | --hash=sha256:c8716a48d94b06bb3b2524c2b77e055fb313aeb4ea620c8dd03a105574ba704f \ | |
37 | --hash=sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f \ |
|
37 | --hash=sha256:cd5df75523866410809ca100dc9681e301e3c27567cf498077e8551b6d20e42f \ | |
38 | --hash=sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7 \ |
|
38 | --hash=sha256:e249096428b3ae81b08327a63a485ad0878de3fb939049038579ac0ef61e17e7 \ | |
39 |
# via jinja2 |
|
39 | # via jinja2 |
General Comments 0
You need to be logged in to leave comments.
Login now