source: create_distribution.py @ 4012

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

Moved supporting file for solitary wave runup.
Also updated create distribution to incorporate this.

File size: 4.5 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
12from anuga.utilities.system_tools import get_user_name, get_host_name
13
14
15if platform == 'win32':
16    msg = 'This script is not written for Windows.'+\
17          'Please run it on a Unix platform'
18    raise Exception, msg
19
20
21# Define main version manually
22major_revision = '1.0'
23
24
25# Refresh sandit and retrieve svn revision number
26# from last line in svn update output
27filename = mktemp() + '.txt'
28
29s = 'svn update > %s' %filename
30print s
31system(s)
32
33fid = open(filename)
34last_line = fid.readlines()[-1]
35remove(filename)
36if not (last_line.startswith('At revision') or\
37        last_line.startswith('Updated to revision')):
38    msg = 'Unexpected output from svn up: %s' %last_line
39    raise Exception, msg   
40
41fields = last_line.split()
42svn_revision = fields[-1][:-1]
43
44revision = '%s_%s' %(major_revision, svn_revision)
45
46print 'Creating ANUGA revision %s' %revision
47
48distro_filename = 'anuga-%s.tgz' %revision
49
50# Create area directory
51release_dir = '~/anuga_release_%s' %revision
52s = 'mkdir %s' %release_dir
53try:
54    system(s)
55except:
56    pass
57
58
59# Export a clean directory tree from the working copy
60distro_dir = mktemp()
61s = 'mkdir %s' %distro_dir
62print s
63system(s)
64
65s = 'svn export anuga_core/source/anuga %s/anuga' %(distro_dir) 
66print s
67system(s)
68
69# Zip it up
70s = 'cd %s;tar cvfz %s *' %(distro_dir, distro_filename)
71print s
72system(s)
73
74# Move distro to release area
75s = '/bin/mv %s/*.tgz %s' %(distro_dir, release_dir) 
76print s
77system(s)
78
79# Clean up
80s = '/bin/rm -rf %s/anuga' %(distro_dir) 
81print s
82system(s)
83
84
85#-----------------------------
86# Get validation_files as well
87
88s = 'mkdir %s/anuga_validation' %distro_dir
89system(s)
90
91s = 'svn export anuga_validation/okushiri_2005 %s/anuga_validation/okushiri'\
92    %(distro_dir) 
93print s
94system(s)
95
96s = 'svn export anuga_validation/solitary_waves %s/anuga_validation/solitary_waves'\
97    %(distro_dir) 
98print s
99system(s)
100
101# Other validations in here!!!
102
103# Zip it up
104s = 'cd %s;tar cvfz anuga_validation-%s.tgz *'\
105    %(distro_dir, revision)
106print s
107system(s)
108
109# Move distro to release area
110s = '/bin/mv %s/*.tgz %s' %(distro_dir, release_dir) 
111print s
112system(s)
113
114# Clean up
115s = '/bin/rm -rf %s/anuga_validation' %(distro_dir) 
116print s
117system(s)
118
119
120#-----------------------------
121# Get demos from user manual
122
123#s = 'mkdir %s/anuga_demos' %distro_dir
124#system(s)
125
126s = 'svn export anuga_core/documentation/user_manual/demos %s/anuga_demos'\
127    %(distro_dir) 
128print s
129system(s)
130
131# Zip it up
132s = 'cd %s;tar cvfz anuga_demos-%s.tgz *'\
133    %(distro_dir, revision)
134print s
135system(s)
136
137# Move distro to release area
138s = '/bin/mv %s/*.tgz %s' %(distro_dir, release_dir) 
139print s
140system(s)
141
142# Clean up
143s = '/bin/rm -rf %s/anuga_demos' %(distro_dir) 
144print s
145system(s)
146
147
148
149#-----------------------------
150# Copy anuga_viewer
151s = '/bin/cp ./anuga_core/source/anuga_viewer/distros/anuga_viewer_1.0.tgz %s'\
152    %(distro_dir)
153print s
154system(s)
155
156# Move distro to release area
157s = '/bin/mv %s/*.tgz %s' %(distro_dir, release_dir) 
158print s
159system(s)
160
161#-----------------------------
162# Hey, why not compile and bundle up the LaTeX documentation as well
163
164s = 'cd anuga_core/documentation/user_manual;'
165s += 'python update_anuga_user_manual.py --no_html'
166print s
167system(s)
168
169s = '/bin/mv anuga_core/documentation/user_manual/anuga_user_manual.pdf %s'\
170    %(release_dir)
171print s
172system(s)
173
174s = '/bin/mv anuga_core/documentation/user_manual/anuga_installation_guide.pdf %s'\
175    %(release_dir)
176print s
177system(s)
178
179
180
181#-----------------------------
182print 'Done'
183print
184print
185print 'The release files are in %s:' %release_dir
186system('ls -la %s' %release_dir)
187
188
189
190#----------------------------
191# Throw away code to drop all files into the RAMP download area
192# This is hardwired for Ole
193
194if get_user_name() == 'ole' and get_host_name() == 'nautilus':
195
196    # Copy to RAMP
197    s = 'rsync -avz %s/* onielsen@cyclone:/d/cit/1/cit/risk_assessment_methods_project/downloads/ANUGA_install/%s' %(release_dir, 'anuga_%s' %revision)
198    print s
199    system(s)
200   
201    #system('scp %s/*.pdf onielsen@cyclone:/d/cit/1/cit/risk_assessment_methods_project/downloads/ANUGA_install' %release_dir)#
202
203
204   
205    # Copy to the ANU
206
207    s = 'rsync -avz %s/* ole@datamining.anu.edu.au:public_html/software/anuga/%s' %(release_dir, 'anuga_%s' %revision)
208    print s
209    system(s)
210   
211   
Note: See TracBrowser for help on using the repository browser.