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