import os import sys import subprocess def run(cmd): print(' '.join(cmd)) if subprocess.call(cmd) != 0: sys.exit() def install(package): cmd = [pip_bin, 'install', package] run(cmd) def upgrade(package): cmd = [pip_bin, 'install', '--upgrade', package] run(cmd) if sys.argv[1:]: base_dir = sys.argv[1] else: base_dir = '/home/sugiana/Unduhan/pypi' base_dir = os.path.realpath(base_dir) if not os.path.exists(base_dir): print('Buat direktori {}'.format(base_dir)) os.mkdir(base_dir) packages = [] with open('pypi-mirror.txt') as f: for line in f.readlines(): packages.append(line.strip()) env_dir = os.path.join(base_dir, 'env') bin_dir = os.path.join(env_dir, 'bin') pip_bin = os.path.join(bin_dir, 'pip') mirror_bin = os.path.join(bin_dir, 'pypi-mirror') mirror_dir = os.path.join(base_dir, 'downloads') index_dir = os.path.join(base_dir, 'simple') if not os.path.exists(env_dir): run(['python3', '-m', 'venv', env_dir]) upgrade('pip') upgrade('setuptools') install('wheel') install('python-pypi-mirror') # Dibutuhkan iso8583 install('ebcdic') cmd = [ mirror_bin, 'download', '--download-dir', mirror_dir, '--pip-executable', pip_bin] for package in packages: cmd_ = cmd + [package] run(cmd_) cmd = [ mirror_bin, 'create', '--download-dir', mirror_dir, '--mirror-dir', index_dir] run(cmd)