Update libav submodule
[mplayer-build.git] / script / export
blobec0083ccbd909f49600e4e738592531b3425fa26
1 #!/usr/bin/env python
3 import os
4 from helpers import run_command
5 from optparse import OptionParser
7 def write(path, revision, outdir):
8 if os.system("(cd %s && git archive --format=tar --prefix=%s/ %s | (cd %s && tar xf -))" % (path, path, revision, outdir)) != 0:
9 raise OSError
11 def subrev(revision, name):
12 return run_command(("git", "ls-tree", revision, name)).split()[2]
14 def export(revision, outdir):
15 os.mkdir(outdir)
16 mplayer_rev = subrev(revision, "mplayer")
17 libass_rev = subrev(revision, "libass")
18 libav_rev = subrev(revision, "libav")
19 os.chdir('mplayer')
20 version = run_command('git describe --match v[0-9]* --always ' +
21 mplayer_rev).strip()
22 os.chdir('..')
23 write('.', revision, outdir)
24 os.putenv('PYTHONDONTWRITEBYTECODE', '1')
25 os.system("cd %s && ./init --init-optionfiles-only" % outdir)
26 for name in 'clean init update'.split():
27 os.remove(outdir + '/' + name)
28 numeric_rev = run_command('git rev-parse ' + revision)
29 f = open(outdir + '/wrapper_export_version', 'w')
30 f.write(numeric_rev)
31 f.close()
32 write('mplayer', mplayer_rev, outdir)
33 f = open(outdir + '/mplayer/snapshot_version', 'w')
34 f.write(version)
35 f.close()
36 write('libass', libass_rev, outdir)
37 os.system("cd %s/libass && autoreconf -ivf" % outdir)
38 write('libav', libav_rev, outdir)
41 def main():
42 usage = "usage: [options] revision outdir"
43 parser = OptionParser(usage=usage)
44 options, args = parser.parse_args()
45 if len(args) != 2:
46 parser.error("incorrect number of arguments")
47 export(args[0], args[1])
49 main()