"""Create a distribution of ANUGA from latest revision This script is assumed to be run in the root directory of anuga from a working sandpit connected to svn This script works only on Linux """ from os import sep, system, remove from tempfile import mktemp from sys import platform if platform == 'win32': msg = 'This script is not written for Windows.'+\ 'Please run it on a Unix platform' raise Exception, msg # Define main version manually major_revision = '1.0' # Refresh sandit and retrieve svn revision number # from last line in svn update output filename = mktemp() + '.txt' s = 'svn update > %s' %filename print s system(s) fid = open(filename) last_line = fid.readlines()[-1] remove(filename) if not (last_line.startswith('At revision') or\ last_line.startswith('Updated to revision')): msg = 'Unexpected output from svn up: %s' %last_line raise Exception, msg fields = last_line.split() svn_revision = fields[-1][:-1] revision = '%s_%s' %(major_revision, svn_revision) print 'Creating ANUGA revision %s' %revision distro_filename = 'anuga-%s.tgz' %revision # Create area directory release_dir = '~/anuga_release_%s' %revision s = 'mkdir %s' %release_dir try: system(s) except: pass # Export a clean directory tree from the working copy distro_dir = mktemp() s = 'mkdir %s' %distro_dir print s system(s) s = 'svn export anuga_core/source/anuga %s/anuga' %(distro_dir) print s system(s) # Zip it up s = 'cd %s;tar cvfz %s *' %(distro_dir, distro_filename) print s system(s) # Move distro to release area s = '/bin/mv %s/*.tgz %s' %(distro_dir, release_dir) print s system(s) # Clean up s = '/bin/rm -rf %s/anuga' %(distro_dir) print s system(s) #----------------------------- # Get validation_files as well s = 'mkdir %s/anuga_validation' %distro_dir system(s) s = 'svn export anuga_validation/okushiri_2005 %s/anuga_validation/okushiri'\ %(distro_dir) print s system(s) # Other validations in here!!! # Zip it up s = 'cd %s;tar cvfz anuga_validation-%s.tgz *'\ %(distro_dir, revision) print s system(s) # Move distro to release area s = '/bin/mv %s/*.tgz %s' %(distro_dir, release_dir) print s system(s) # Clean up s = '/bin/rm -rf %s/anuga_validation' %(distro_dir) print s system(s) #----------------------------- # Copy anuga_viewer s = '/bin/cp ./anuga_core/source/anuga_viewer/distros/anuga_viewer_1.0.tgz %s'\ %(distro_dir) print s system(s) # Move distro to release area s = '/bin/mv %s/*.tgz %s' %(distro_dir, release_dir) print s system(s) #----------------------------- # Hey, why not compile and bundle up the LaTeX documentation as well s = 'cd anuga_core/documentation/user_manual;' s += 'python update_anuga_user_manual.py --no_html' print s system(s) s = '/bin/mv anuga_core/documentation/user_manual/anuga_user_manual.pdf %s'\ %(release_dir) print s system(s) s = '/bin/mv anuga_core/documentation/user_manual/anuga_installation_guide.pdf %s'\ %(release_dir) print s system(s) #----------------------------- print 'Done' print print print 'The release files are in %s:' %release_dir system('ls -la %s' %release_dir) #---------------------------- # Throw away code to drop all files into the RAMP download area # This is hardwired for Ole system('scp %s/*.tgz onielsen@cyclone:/d/cit/1/cit/risk_assessment_methods_project/downloads/ANUGA_install/anuga' %release_dir) system('scp %s/*.pdf onielsen@cyclone:/d/cit/1/cit/risk_assessment_methods_project/downloads/ANUGA_install' %release_dir)