ee18fe41da
pypi-mirror creates a separate mirror index for wheels (one per OS that mirrors are built on). To be able to use it one then needs to be able to export multiple mirrors for inclusion in pip.conf. As a drive by I made it possible to disable the use of the pypi.python.org index without using --offline (as --offline has larger impact). Change-Id: I3e85a8069b18cafd7eae4cd0591821acc3b5a739
45 lines
1.5 KiB
Python
Executable file
45 lines
1.5 KiB
Python
Executable file
#!/usr/bin/env python
|
|
|
|
import os.path
|
|
|
|
def main():
|
|
home = os.path.expanduser("~")
|
|
backup_configs(home)
|
|
indices = []
|
|
if os.environ.get('PYPI_MIRROR_URL'):
|
|
candidates = [k for k in os.environ if k.startswith('PYPI_MIRROR_URL')]
|
|
indices = list(map(os.environ.get, sorted(candidates)))
|
|
else:
|
|
indices = ['file:///tmp/pypi']
|
|
easy_index = indices[-1]
|
|
use_pypi_python_org = True
|
|
if os.environ.get('DIB_OFFLINE'):
|
|
use_pypi_python_org = False
|
|
if os.environ.get('DIB_NO_PYPI_PIP'):
|
|
use_pypi_python_org = False
|
|
if use_pypi_python_org:
|
|
indices.append('https://pypi.python.org/simple')
|
|
with file(home + '/.pip/pip.conf', 'wt') as output:
|
|
output.write('[global]\n')
|
|
output.write('log = %s/pip.log\n' % (home,))
|
|
output.write('index-url = %s\n' % (indices[0],))
|
|
for index in indices[1:]:
|
|
output.write('extra-index-url = %s\n' % (index,))
|
|
with file(home + '/.pydistutils.cfg', 'wt') as output:
|
|
output.write('[easy_install]\n')
|
|
output.write('index_url = %s\n' % (easy_index,))
|
|
|
|
|
|
def backup_configs(home):
|
|
pip_dir = home + '/.pip'
|
|
if not os.path.exists(pip_dir):
|
|
os.mkdir(pip_dir)
|
|
if os.path.exists(pip_dir + '/pip.conf'):
|
|
os.rename(pip_dir + '/pip.conf', pip_dir + '/pip.conf.orig')
|
|
if os.path.exists(home + '/.pydistutils.cfg'):
|
|
os.rename(home + '/.pydistutils.cfg', home + '/.pydistutils.cfg.orig')
|
|
|
|
|
|
if __name__ == '__main__':
|
|
main()
|
|
|