]> git.donarmstrong.com Git - lilypond.git/blob - stepmake/bin/release.py
release: 1.3.0
[lilypond.git] / stepmake / bin / release.py
1 #!@PYTHON@
2 # release.py
3
4 import os
5 import sys
6 import getopt
7
8 topdir = ''
9 outdir = '.'
10
11 (options, files) = getopt.getopt(sys.argv[1:], 'ho:p:', ['help', 'outdir=', 'package=']) 
12
13 def help ():
14         sys.stdout.write (r"""Usage: release [OPTION]...
15 Make a tarball and patch
16
17 Options:
18   -o, --outdir=DIR       where to leave patches.
19   -h, --help             print this help
20   -p, --package=DIR      specify package"""
21 )
22         sys.exit (0)
23
24 for opt in options:
25         o = opt[0]
26         a = opt[1]
27         if o == '-h' or o == '--help':
28                 help ()
29         elif o == '-p' or o == '--package':
30                 topdir = a
31         elif o == '--outdir' or o == '-o':
32                 outdir = a
33             
34
35 sys.path.append (topdir + '/stepmake/bin')
36 from packagepython import *
37 package = Package (topdir)
38 os.chdir(package.topdir)
39
40 try:
41         os.system ('set -x; rm ' + os.path.join (outdir, package.name + '*gz'))
42 except:
43         pass
44
45
46
47 status = os.system('make dist')
48 if status:
49         raise 'make dist failed'
50
51 cur_ver = package.version
52
53
54 pn = '%s-%s' %(package.name, version_tuple_to_str(cur_ver))
55 tarball = pn + '.tar.gz'
56 orig  = os.path.join (outdir, tarball)
57 try:
58         os.remove(os.path.join (package.release_dir, tarball))
59 except:
60         pass
61 os.link(orig,  os.path.join (package.release_dir, tarball))
62
63 # urg: howto check exit code?
64 os.system(sys.executable + ' ' + package.topdir + '/stepmake/bin/package-diff.py --package=' + topdir)
65
66 diffname = pn + '.diff.gz'
67 rel_pn = package.patch_dir + diffname
68
69 diffname = os.path.join (outdir, diffname)
70
71 try:
72         os.rename(diffname, rel_pn)
73 except:
74         sys.stderr.write ("Can't find diff: %s\n" % diffname)
75         sys.exit (1)
76 os.link(rel_pn, diffname)
77