--- mitgcm.org/scripts/daily_tarfile 2008/09/06 19:48:45 1.1 +++ mitgcm.org/scripts/daily_tarfile 2018/01/15 19:23:35 1.7 @@ -1,28 +1,97 @@ #! /usr/bin/env bash -# $Header: /home/ubuntu/mnt/e9_copy/mitgcm.org/scripts/daily_tarfile,v 1.1 2008/09/06 19:48:45 jmc Exp $ +# $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 +#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/httpd/html/download/daily_snapshot' -cd /u/httpd/html/download/daily_snapshot +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 'Checking out MITgcm...' -cvs co -P MITgcm > /dev/null 2>&1 +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 -echo 'Creating the tar file...' -rm -rf MITgcm_ss_* +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 -echo 'Done!' - +#-- 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