]> git.proxmox.com Git - rustc.git/blob - debian/make_orig-dl_tarball.py
* Introduce some changes by Angus Lees
[rustc.git] / debian / make_orig-dl_tarball.py
1 #!/usr/bin/python
2
3 import os
4 import re
5 import StringIO
6 import subprocess
7 import sys
8 import tarfile
9 import urllib3
10
11 deb_dir = os.path.dirname(os.path.realpath(sys.argv[0]))
12 src_root_dir = os.path.realpath(os.path.join(deb_dir, '..'))
13 src_root_parent_dir = os.path.realpath(os.path.join(src_root_dir, '..'))
14 snapshot_dir = os.path.join(src_root_dir, 'src', 'etc')
15
16 os.environ['CFG_SRC_DIR'] = src_root_dir
17
18 os.chdir(src_root_dir)
19 ps = subprocess.Popen('dpkg-parsechangelog', stdout=subprocess.PIPE)
20 version = ps.stdout.read()
21 regex = re.compile('^Version:\s*(\S+)\s*$', re.MULTILINE)
22 mo = regex.search(version)
23 assert mo is not None
24 version = mo.group(1)
25 upstream_version = version.split('-')[0]
26
27 sys.path.append(snapshot_dir)
28 from snapshot import determine_curr_snapshot
29
30 snapshots = {}
31 for arch in ('i386', 'x86_64'):
32 snapshots[arch] = determine_curr_snapshot(arch + '-unknown-linux')
33
34 http = urllib3.PoolManager()
35
36 def create_dl_tarball():
37 dl_tarfile = 'rust_' + upstream_version + '.orig-dl.tar.gz'
38 dl_tarfile = os.path.join(src_root_parent_dir, dl_tarfile)
39 tar = tarfile.open(dl_tarfile, 'w:gz')
40 url_base = 'https://static.rust-lang.org/stage0-snapshots/'
41 for arch in snapshots.iterkeys():
42 snapshot = snapshots[arch]
43 url = url_base + snapshot
44 print 'Downloading', snapshot, '...',
45 sys.stdout.flush()
46 r = http.request('GET', url)
47 print
48 assert(r.status == 200)
49 filelike = StringIO.StringIO(r.data)
50 tarinfo = tarfile.TarInfo(snapshot)
51 tarinfo.size = len(filelike.buf)
52 print 'Writing to', dl_tarfile, '...',
53 tar.addfile(tarinfo, filelike)
54 filelike.close()
55 print
56 tar.close()
57
58 create_dl_tarball()