summaryrefslogtreecommitdiffstats
path: root/python/setup.py
blob: c5bc45919a4d8988640a5c80cc71fe53b9dce609 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
#!/usr/bin/env python3
"""
QEMU tooling installer script
Copyright (c) 2020-2021 John Snow for Red Hat, Inc.
"""

import setuptools
from setuptools.command import bdist_egg
import sys
import pkg_resources


class bdist_egg_guard(bdist_egg.bdist_egg):
    """
    Protect against bdist_egg from being executed

    This prevents calling 'setup.py install' directly, as the 'install'
    CLI option will invoke the deprecated bdist_egg hook. "pip install"
    calls the more modern bdist_wheel hook, which is what we want.
    """
    def run(self):
        sys.exit(
            'Installation directly via setup.py is not supported.\n'
            'Please use `pip install .` instead.'
        )


def main():
    """
    QEMU tooling installer
    """

    # https://medium.com/@daveshawley/safely-using-setup-cfg-for-metadata-1babbe54c108
    pkg_resources.require('setuptools>=39.2')

    setuptools.setup(cmdclass={'bdist_egg': bdist_egg_guard})


if __name__ == '__main__':
    main()