Commit 1ef1daf7 authored by Godefroid Chapelle's avatar Godefroid Chapelle

Refactor: move top level code to function

parent 80006c77
......@@ -29,21 +29,22 @@ import os, shutil, subprocess, tempfile
os.environ["SETUPTOOLS_USE_DISTUTILS"] = "stdlib"
for d in 'eggs', 'develop-eggs', 'bin', 'parts':
def main():
for d in 'eggs', 'develop-eggs', 'bin', 'parts':
if not os.path.exists(d):
os.mkdir(d)
bin_buildout = os.path.join('bin', 'buildout')
if os.path.isfile(bin_buildout):
bin_buildout = os.path.join('bin', 'buildout')
if os.path.isfile(bin_buildout):
os.remove(bin_buildout)
if os.path.isdir('build'):
if os.path.isdir('build'):
shutil.rmtree('build')
print("Current directory %s" % os.getcwd())
print("Current directory %s" % os.getcwd())
#######################################################################
def install_pip():
#######################################################################
def install_pip():
print('')
print('Install pip')
print('')
......@@ -76,7 +77,7 @@ def install_pip():
)
sys.exit(return_code)
try:
try:
import pip
print('')
try:
......@@ -94,11 +95,11 @@ try:
b"ModuleNotFoundError" in e.output):
install_pip()
raise e
except ImportError:
except ImportError:
install_pip()
######################################################################
def check_upgrade(package):
######################################################################
def check_upgrade(package):
print('')
print('Try to upgrade %s' % package)
print('')
......@@ -125,7 +126,7 @@ def check_upgrade(package):
raise RuntimeError("Upgrade %s failed." % package)
def show(package):
def show(package):
try:
sys.stdout.flush()
output = subprocess.check_output(
......@@ -138,40 +139,40 @@ def show(package):
raise RuntimeError("Upgrade %s failed." % package)
need_restart = False
for package in ['pip', 'setuptools', 'wheel']:
need_restart = False
for package in ['pip', 'setuptools', 'wheel']:
did_upgrade = check_upgrade(package)
show(package)
need_restart = need_restart or did_upgrade
if need_restart:
if need_restart:
print("Restart")
sys.stdout.flush()
return_code = subprocess.call(
[sys.executable] + sys.argv
)
sys.exit(return_code)
######################################################################
print('')
print('Install buildout')
print('')
sys.stdout.flush()
if subprocess.call(
######################################################################
print('')
print('Install buildout')
print('')
sys.stdout.flush()
if subprocess.call(
[sys.executable] +
['setup.py', '-q', 'develop', '-m', '-x', '-d', 'develop-eggs'],
):
raise RuntimeError("buildout build failed.")
import pkg_resources
import pkg_resources
pkg_resources.working_set.add_entry('src')
pkg_resources.working_set.add_entry('src')
import zc.buildout.easy_install
zc.buildout.easy_install.scripts(
import zc.buildout.easy_install
zc.buildout.easy_install.scripts(
['zc.buildout'], pkg_resources.working_set, sys.executable, 'bin')
######################################################################
def install_coverage():
######################################################################
def install_coverage():
print('')
print('Install coverage')
print('')
......@@ -182,20 +183,23 @@ def install_coverage():
):
raise RuntimeError("coverage install failed.")
try:
try:
import coverage
except ImportError:
except ImportError:
install_coverage()
######################################################################
print('')
print('Run buildout')
print('')
bin_buildout = os.path.join('bin', 'buildout')
######################################################################
print('')
print('Run buildout')
print('')
bin_buildout = os.path.join('bin', 'buildout')
if sys.platform.startswith('java'):
if sys.platform.startswith('java'):
# Jython needs the script to be called twice via sys.executable
assert subprocess.Popen([sys.executable, bin_buildout, '-N']).wait() == 0
sys.stdout.flush()
sys.exit(subprocess.Popen(bin_buildout).wait())
sys.stdout.flush()
sys.exit(subprocess.Popen(bin_buildout).wait())
if __name__ == '__main__':
main()
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment