blob: 5de464b06a1b043320b1f06cf28ec3b0015aeeea [file] [log] [blame]
# Downloads dill files from CIPD for each supported ABI version.
import os
import subprocess
import sys
import utils
def procWait(p):
while p.returncode is None:
p.communicate()
p.poll()
return p.returncode
def findAbiVersion(version):
cmd = ['cipd', 'instances', 'dart/abiversions/%d' % version]
p = subprocess.Popen(cmd,
stdout = subprocess.PIPE,
stderr = subprocess.PIPE,
shell = utils.IsWindows(),
cwd = utils.DART_DIR)
return procWait(p) == 0
def main():
abi_version = int(utils.GetAbiVersion())
oldest_abi_version = int(utils.GetOldestSupportedAbiVersion())
cmd = ['cipd', 'ensure', '-root', 'tools/abiversions', '-ensure-file', '-']
ensure_file = ''
for i in range(oldest_abi_version, abi_version + 1):
if findAbiVersion(i):
ensure_file += '@Subdir %d\ndart/abiversions/%d latest\n\n' % (i, i)
if not ensure_file:
return 0
p = subprocess.Popen(cmd,
stdin = subprocess.PIPE,
stdout = subprocess.PIPE,
stderr = subprocess.PIPE,
shell = utils.IsWindows(),
cwd = utils.DART_DIR)
p.communicate(ensure_file)
p.stdin.close()
return procWait(p)
if __name__ == '__main__':
sys.exit(main())