#! /usr/bin/env bash # $Header: /home/ubuntu/mnt/e9_copy/mitgcm.org/scripts/daily_tarfile,v 1.7 2018/01/15 19:23:35 jmc Exp $ # download the source code and make a tar file #export CVSROOT=/u/gcmpack #- to allow users to use cvs update/diff on their untar version of the code, # switch to pserver method (stored everywhere in the tree in dirs CVS/Root) export CVSROOT=':pserver:cvsanon@mitgcm.org:/u/gcmpack' umask 0002 echo 'Changing dir. to /u/u0/httpd/html/download/daily_snapshot' cd /u/u0/httpd/html/download/daily_snapshot outp=$? if test $outp != 0 ; then echo " Error in cd : $outp" exit 1 fi test -e MITgcm && rm -rf MITgcm echo -n 'Checking out MITgcm ... ' cvs -q co -P MITgcm > /dev/null outp=$? if test $outp = 0 ; then echo 'Done!' else echo " Error in cvs checkout: $outp" exit 2 fi #chgrp gcmpack MITgcm #chmod 775 MITgcm rm -f MITgcm_ss_* tname='MITgcm_ss_'`date +%Y%m%d`'.tar.gz' echo -n 'Creating the tar file ... ' tar -czf $tname ./MITgcm #- should check if successful, it not -> exit 3 echo 'Done!' #chmod 664 $tname ls -l $tname #-- test for new checkpoint cd .. version_file="daily_snapshot/MITgcm/doc/tag-index" backupDir="other_checkpoints" if test -f $version_file ; then thischkpt=`awk '/^checkpoint/{print $1; exit}' $version_file` short=`echo $thischkpt | sed 's/checkpoint/c/'` chkptar="MITgcm_$short" if test -f $chkptar.tar.gz ; then echo "tar file ($chkptar) exist for current tag: $thischkpt" else echo -n "Checking out $thischkpt ..." rm -f checkout.out checkout.err cvs -q co -P -d $chkptar -r $thischkpt MITgcm 1> checkout.out 2> checkout.err outp=$? if test $outp != 0 ; then echo " Error in cvs checkout: $outp" cat checkout.err exit 4 fi echo -n " ; making tar file ... " rm -f checkout.out checkout.err tar -cf $chkptar.tar $chkptar outp=$? if test $outp != 0 ; then echo " Error in tar command: $outp" exit 5 else echo " Done" rm -r -f $chkptar fi gzip $chkptar.tar ls -l $chkptar.tar* #-- move previous tar file to backupDir listTar=`ls MITgcm_c*.tar.gz` if test -d $backupDir ; then for xx in $listTar ; do if test $xx != $chkptar.tar.gz ; then if test -f other_checkpoints/$xx ; then echo "error: $backupDir/$xx already exist" else echo " mv $xx $backupDir" mv $xx $backupDir fi fi done else echo " no dir: $backupDir" exit 6 fi fi fi