34 lines
1.0 KiB
Python
34 lines
1.0 KiB
Python
'''
|
|
Import of this module is triggered by org.python.core.imp.import_next
|
|
on first import of setuptools.command. It essentially restores a
|
|
Jython specific fix for OSX shebang line via monkeypatching.
|
|
|
|
See http://bugs.jython.org/issue2570
|
|
Related: http://bugs.jython.org/issue1112
|
|
'''
|
|
|
|
from setuptools.command import easy_install as ez
|
|
|
|
_as_header = ez.CommandSpec.as_header
|
|
|
|
def _jython_as_header(self):
|
|
'''Workaround Jython's sys.executable being a .sh (an invalid
|
|
shebang line interpreter)
|
|
'''
|
|
if not ez.is_sh(self[0]):
|
|
return _as_header(self)
|
|
|
|
if self.options:
|
|
# Can't apply the workaround, leave it broken
|
|
log.warn(
|
|
"WARNING: Unable to adapt shebang line for Jython,"
|
|
" the following script is NOT executable\n"
|
|
" see http://bugs.jython.org/issue1112 for"
|
|
" more information.")
|
|
return _as_header(self)
|
|
|
|
items = ['/usr/bin/env'] + self + list(self.options)
|
|
return self._render(items)
|
|
|
|
ez.CommandSpec.as_header = _jython_as_header
|