source: create_distribution.py @ 3990

Last change on this file since 3990 was 3990, checked in by ole, 18 years ago

Allowed distribution script to upload to web

File size: 4.3 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
96# Other validations in here!!!
97
98# Zip it up
99s = 'cd %s;tar cvfz anuga_validation-%s.tgz *'\
100    %(distro_dir, revision)
101print s
102system(s)
103
104# Move distro to release area
105s = '/bin/mv %s/*.tgz %s' %(distro_dir, release_dir) 
106print s
107system(s)
108
109# Clean up
110s = '/bin/rm -rf %s/anuga_validation' %(distro_dir) 
111print s
112system(s)
113
114
115#-----------------------------
116# Get demos from user manual
117
118#s = 'mkdir %s/anuga_demos' %distro_dir
119#system(s)
120
121s = 'svn export anuga_core/documentation/user_manual/demos %s/anuga_demos'\
122    %(distro_dir) 
123print s
124system(s)
125
126# Zip it up
127s = 'cd %s;tar cvfz anuga_demos-%s.tgz *'\
128    %(distro_dir, revision)
129print s
130system(s)
131
132# Move distro to release area
133s = '/bin/mv %s/*.tgz %s' %(distro_dir, release_dir) 
134print s
135system(s)
136
137# Clean up
138s = '/bin/rm -rf %s/anuga_demos' %(distro_dir) 
139print s
140system(s)
141
142
143
144#-----------------------------
145# Copy anuga_viewer
146s = '/bin/cp ./anuga_core/source/anuga_viewer/distros/anuga_viewer_1.0.tgz %s'\
147    %(distro_dir)
148print s
149system(s)
150
151# Move distro to release area
152s = '/bin/mv %s/*.tgz %s' %(distro_dir, release_dir) 
153print s
154system(s)
155
156#-----------------------------
157# Hey, why not compile and bundle up the LaTeX documentation as well
158
159s = 'cd anuga_core/documentation/user_manual;'
160s += 'python update_anuga_user_manual.py --no_html'
161print s
162system(s)
163
164s = '/bin/mv anuga_core/documentation/user_manual/anuga_user_manual.pdf %s'\
165    %(release_dir)
166print s
167system(s)
168
169s = '/bin/mv anuga_core/documentation/user_manual/anuga_installation_guide.pdf %s'\
170    %(release_dir)
171print s
172system(s)
173
174
175
176#-----------------------------
177print 'Done'
178print
179print
180print 'The release files are in %s:' %release_dir
181system('ls -la %s' %release_dir)
182
183
184
185#----------------------------
186# Throw away code to drop all files into the RAMP download area
187# This is hardwired for Ole
188
189if get_user_name() == 'ole' and get_host_name() == 'nautilus':
190
191    # Copy to RAMP
192    s = 'rsync -avz %s/* onielsen@cyclone:/d/cit/1/cit/risk_assessment_methods_project/downloads/ANUGA_install/%s' %(release_dir, 'anuga_%s' %revision)
193    print s
194    system(s)
195   
196    #system('scp %s/*.pdf onielsen@cyclone:/d/cit/1/cit/risk_assessment_methods_project/downloads/ANUGA_install' %release_dir)#
197
198
199   
200    # Copy to the ANU
201
202    s = 'rsync -avz %s/* ole@datamining.anu.edu.au:public_html/software/%s' %(release_dir, 'anuga_%s' %revision)
203    print s
204    system(s)
205   
206   
Note: See TracBrowser for help on using the repository browser.