source: create_distribution.py @ 3934

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

Small fixes

File size: 3.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
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') or\
36        last_line.startswith('Updated to revision')):
37    msg = 'Unexpected output from svn up: %s' %last_line
38    raise Exception, msg   
39
40fields = last_line.split()
41svn_revision = fields[-1][:-1]
42
43revision = '%s_%s' %(major_revision, svn_revision)
44
45print 'Creating ANUGA revision %s' %revision
46
47distro_filename = 'anuga-%s.tgz' %revision
48
49# Create area directory
50release_dir = '~/anuga_release_%s' %revision
51s = 'mkdir %s' %release_dir
52try:
53    system(s)
54except:
55    pass
56
57
58# Export a clean directory tree from the working copy
59distro_dir = mktemp()
60s = 'mkdir %s' %distro_dir
61print s
62system(s)
63
64s = 'svn export anuga_core/source/anuga %s/anuga' %(distro_dir) 
65print s
66system(s)
67
68# Zip it up
69s = 'cd %s;tar cvfz %s *' %(distro_dir, distro_filename)
70print s
71system(s)
72
73# Move distro to release area
74s = '/bin/mv %s/*.tgz %s' %(distro_dir, release_dir) 
75print s
76system(s)
77
78# Clean up
79s = '/bin/rm -rf %s/anuga' %(distro_dir) 
80print s
81system(s)
82
83
84#-----------------------------
85# Get validation_files as well
86
87s = 'mkdir %s/anuga_validation' %distro_dir
88system(s)
89
90s = 'svn export anuga_validation/okushiri_2005 %s/anuga_validation/okushiri'\
91    %(distro_dir) 
92print s
93system(s)
94
95# Other validations in here!!!
96
97# Zip it up
98s = 'cd %s;tar cvfz anuga_validation-%s.tgz *'\
99    %(distro_dir, revision)
100print s
101system(s)
102
103# Move distro to release area
104s = '/bin/mv %s/*.tgz %s' %(distro_dir, release_dir) 
105print s
106system(s)
107
108# Clean up
109s = '/bin/rm -rf %s/anuga_validation' %(distro_dir) 
110print s
111system(s)
112
113#-----------------------------
114# Copy anuga_viewer
115s = '/bin/cp ./anuga_core/source/anuga_viewer/distros/anuga_viewer_1.0.tgz %s'\
116    %(distro_dir)
117print s
118system(s)
119
120# Move distro to release area
121s = '/bin/mv %s/*.tgz %s' %(distro_dir, release_dir) 
122print s
123system(s)
124
125#-----------------------------
126# Hey, why not compile and bundle up the LaTeX documentation as well
127
128s = 'cd anuga_core/documentation/user_manual;'
129s += 'python update_anuga_user_manual.py --no_html'
130print s
131system(s)
132
133s = '/bin/mv anuga_core/documentation/user_manual/anuga_user_manual.pdf %s'\
134    %(release_dir)
135print s
136system(s)
137
138s = '/bin/mv anuga_core/documentation/user_manual/anuga_installation_guide.pdf %s'\
139    %(release_dir)
140print s
141system(s)
142
143
144
145#-----------------------------
146print 'Done'
147print
148print
149print 'The release files are in %s:' %release_dir
150system('ls -la %s' %release_dir)
151
152
153
154#----------------------------
155# Throw away code to drop all files into the RAMP download area
156# This is hardwired for Ole
157
158system('scp %s/*.tgz onielsen@cyclone:/d/cit/1/cit/risk_assessment_methods_project/downloads/ANUGA_install/anuga' %release_dir)
159
160system('scp %s/*.pdf onielsen@cyclone:/d/cit/1/cit/risk_assessment_methods_project/downloads/ANUGA_install' %release_dir)
Note: See TracBrowser for help on using the repository browser.