]>
Commit | Line | Data |
---|---|---|
ea1213b7 JS |
1 | #!/usr/bin/env python3 |
2 | """ | |
3 | QEMU tooling installer script | |
4 | Copyright (c) 2020-2021 John Snow for Red Hat, Inc. | |
5 | """ | |
6 | ||
7 | import setuptools | |
2ddaeb7b JS |
8 | from setuptools.command import bdist_egg |
9 | import sys | |
ea1213b7 JS |
10 | import pkg_resources |
11 | ||
12 | ||
2ddaeb7b JS |
13 | class bdist_egg_guard(bdist_egg.bdist_egg): |
14 | """ | |
15 | Protect against bdist_egg from being executed | |
16 | ||
17 | This prevents calling 'setup.py install' directly, as the 'install' | |
18 | CLI option will invoke the deprecated bdist_egg hook. "pip install" | |
19 | calls the more modern bdist_wheel hook, which is what we want. | |
20 | """ | |
21 | def run(self): | |
22 | sys.exit( | |
23 | 'Installation directly via setup.py is not supported.\n' | |
24 | 'Please use `pip install .` instead.' | |
25 | ) | |
26 | ||
27 | ||
ea1213b7 JS |
28 | def main(): |
29 | """ | |
30 | QEMU tooling installer | |
31 | """ | |
32 | ||
33 | # https://medium.com/@daveshawley/safely-using-setup-cfg-for-metadata-1babbe54c108 | |
34 | pkg_resources.require('setuptools>=39.2') | |
35 | ||
2ddaeb7b | 36 | setuptools.setup(cmdclass={'bdist_egg': bdist_egg_guard}) |
ea1213b7 JS |
37 | |
38 | ||
39 | if __name__ == '__main__': | |
40 | main() |