]>
git.proxmox.com Git - ceph.git/blob - ceph/src/boost/libs/unordered/build/download-boost-snapshot.py
3 import urllib
, os
, os
.path
, sys
, json
, tarfile
, zipfile
, tempfile
5 def download(snapshot
):
6 if snapshot
== 'stable':
7 # TODO: Default version/filename if not available?
9 "https://sourceforge.net/projects/boost/files/boost/%s/%s.tar.bz2/download" %
10 (os
.environ
['BOOST_VERSION'], os
.environ
['BOOST_FILENAME'])]
12 json_response
= urllib
.urlopen('https://api.bintray.com/packages/boostorg/%s/snapshot/files' % (snapshot
))
13 x
= json
.load(json_response
)
15 extension_priorities
= { '.bz2': 2, '.gz': 1, '.zip': 0 }
19 file_extension
= os
.path
.splitext(file['path'])[1]
20 if (file_extension
in extension_priorities
):
21 file['priority'] = extension_priorities
[file_extension
]
22 file_list
.append(file)
23 if not file['version'] in version_dates
or file['created'] < version_dates
[file['version']]:
24 version_dates
[file['version']] = file['created']
25 file_list
.sort(key
=lambda x
: (version_dates
[x
['version']], x
['priority']), reverse
=True)
26 downloads
= ['http://dl.bintray.com/boostorg/%s/%s' % (snapshot
, file['path']) for file in file_list
]
29 for download_url
in downloads
:
31 print "Downloading: " + download_url
32 (filename
, headers
) = urllib
.urlretrieve(download_url
)
34 print "Extracting: " + filename
35 dir = tempfile
.mkdtemp()
36 extract(filename
, dir)
38 files
= os
.listdir(dir)
39 assert(len(files
) == 1)
40 os
.rename(os
.path
.join(dir, files
[0]), 'boost')
43 print "Error opening URL: " + download_url
45 def extract(filename
, path
= '.'):
46 if (filename
.endswith(".gz")):
47 tar
= tarfile
.open(filename
, "r:gz")
50 elif (filename
.endswith(".bz2")):
51 tar
= tarfile
.open(filename
, "r:bz2")
54 elif (filename
.endswith(".zip")):
55 zip = zipfile
.ZipFile(filename
, "r")
61 if len(sys
.argv
) == 1:
63 elif len(sys
.argv
) == 2:
66 print "Usage: %s [stable|branch-name]" % (sys
.argv
[0])