source: create_distribution.py @ 3922

Last change on this file since 3922 was 3922, checked in by ole, 17 years ago

Update on automatic bundling of ANUGA for release.

File size: 3.0 KB
Line 
1"""Create a distribution of ANUGA from latest revision
2
3   This script is assumed to be run in the root directory of anuga
4   from a working sandpit connected to svn
5
6   This script works only on Linux
7"""
8
9from os import sep, system, remove
10from tempfile import mktemp
11from sys import platform
12
13
14if platform == 'win32':
15    msg = 'This script is not written for Windows.'+\
16          'Please run it on a Unix platform'
17    raise Exception, msg
18
19
20# Define main version manually
21major_revision = '1.0'
22
23
24# Refresh sandit and retrieve svn revision number
25# from last line in svn update output
26filename = mktemp() + '.txt'
27
28s = 'svn update > %s' %filename
29print s
30system(s)
31
32fid = open(filename)
33last_line = fid.readlines()[-1]
34remove(filename)
35if not last_line.startswith('At revision'):
36    msg = 'Unexpected output from svn up: %s' %last_line
37    raise Exception, msg   
38
39svn_revision = last_line[12:-2]
40
41revision = '%s_%s' %(major_revision, svn_revision)
42
43distro_filename = 'anuga-%s.tgz' %revision
44
45# Create area directory
46release_dir = '~/anuga_release_%s' %revision
47s = 'mkdir %s' %release_dir
48try:
49    system(s)
50except:
51    pass
52
53
54# Export a clean directory tree from the working copy
55distro_dir = mktemp()
56s = 'mkdir %s' %distro_dir
57print s
58system(s)
59
60s = 'svn export anuga_core/source/anuga %s/anuga' %(distro_dir) 
61print s
62system(s)
63
64# Zip it up
65s = 'cd %s;tar cvfz %s *' %(distro_dir, distro_filename)
66print s
67system(s)
68
69# Move distro to release area
70s = '/bin/mv %s/*.tgz %s' %(distro_dir, release_dir) 
71print s
72system(s)
73
74# Clean up
75s = '/bin/rm -rf %s/anuga' %(distro_dir) 
76print s
77system(s)
78
79
80#-----------------------------
81# Get validation_files as well
82
83s = 'mkdir %s/anuga_validation' %distro_dir
84system(s)
85
86s = 'svn export anuga_validation/okushiri_2005 %s/anuga_validation/okushiri'\
87    %(distro_dir) 
88print s
89system(s)
90
91# Other validations in here!!!
92
93# Zip it up
94s = 'cd %s;tar cvfz anuga_validation-%s.tgz *'\
95    %(distro_dir, revision)
96print s
97system(s)
98
99# Move distro to release area
100s = '/bin/mv %s/*.tgz %s' %(distro_dir, release_dir) 
101print s
102system(s)
103
104# Clean up
105s = '/bin/rm -rf %s/anuga_validation' %(distro_dir) 
106print s
107system(s)
108
109#-----------------------------
110# Copy anuga_viewer
111s = '/bin/cp ./anuga_core/source/anuga_viewer/distros/anuga_viewer_1.0.tgz %s'\
112    %(distro_dir)
113print s
114system(s)
115
116# Move distro to release area
117s = '/bin/mv %s/*.tgz %s' %(distro_dir, release_dir) 
118print s
119system(s)
120
121#-----------------------------
122# Hey, why not compile and bundle up the LaTeX documentation as well
123
124s = 'cd anuga_core/documentation/user_manual;'
125s += 'python update_anuga_user_manual.py --no_html'
126print s
127system(s)
128
129s = '/bin/mv anuga_core/documentation/user_manual/anuga_user_manual.pdf %s'\
130    %(release_dir)
131print s
132system(s)
133
134s = '/bin/mv anuga_core/documentation/user_manual/anuga_installation_guide.pdf %s'\
135    %(release_dir)
136print s
137system(s)
138
139
140
141#-----------------------------
142print 'Done'
143print
144print
145print 'The release files are in %s:' %release_dir
146system('ls -la %s' %release_dir)
Note: See TracBrowser for help on using the repository browser.