#! /usr/bin/env bash # $Header: /home/ubuntu/mnt/e9_copy/mitgcm.org/scripts/mk_git_tarfile,v 1.6 2018/02/01 01:16:38 jmc Exp $ # download the source code from github and make a tar file git_repo='MITgcm'; git_code='MITgcm' # git_repo='altMITgcm'; #git_code='MITgcm66h' tmpFil="/tmp/"`basename $0`".$$" umask 0002 echo 'Changing dir. to /u/u0/httpd/html/download/git_snapshot' cd /u/u0/httpd/html/download/git_snapshot outp=$? if test $outp != 0 ; then echo " Error in cd : $outp" exit 1 fi test -e $git_code && rm -rf $git_code echo "Make a clone of $git_code from repo: $git_repo ..." #git clone --depth 1 https://github.com/$git_repo/$git_code.git 2> $tmpFil git clone https://github.com/$git_repo/$git_code.git 2> $tmpFil outp=$? if test $outp = 0 ; then echo ' --> done!' rm -f $tmpFil else echo " Error: 'git clone' returned: $outp" cat $tmpFil rm -f $tmpFil exit 2 fi # chgrp gcmpack $git_code chmod 775 $git_code rm -rf MITgcm_ss_* arName='MITgcm_ss_'`date +%Y%m%d`'.tar' echo -n 'Creating the archive file ... ' ( cd $git_code ; git archive --prefix MITgcm/ -o ../$arName master ) gzip -9 $arName #- should check if successful, it not -> exit 3 echo 'Done!' #chmod 664 ${arName}.gz ls -l ${arName}* #exit backupDir="other_checkpoints" if test -d ../$backupDir ; then #ls -ld ../$backupDir else echo -n " make dir: $backupDir" mkdir ../$backupDir outp=$? if test $outp != 0 ; then echo " Error in mkdir command: $outp" exit 4 else echo " Done" ls -ld ../$backupDir fi fi savRepo="${git_code}_git" echo -n 'Make a tar file of the full git repo ...' test -e $savRepo.tar && mv -f $savRepo.tar ../$backupDir test -e $savRepo.tar.gz && mv -f $savRepo.tar.gz ../$backupDir tar -cf $savRepo.tar $git_code gzip -9 $savRepo.tar #- should check if successful, it not -> exit 5 echo ' Done !' ls -l ${savRepo}* #-- test for new checkpoint version_file="$git_code/doc/tag-index" 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 " ; checkpoint archive file ... " ( cd $git_code ; git archive --prefix MITgcm/ -o ../$chkptar $thischkpt ) outp=$? if test $outp != 0 ; then echo " Error in 'git archive' command: $outp" exit 5 else echo " Done" fi gzip $chkptar.tar ls -l $chkptar.tar* mv $chkptar.tar.gz .. #-- move previous tar file to backupDir cd .. listTar=`ls MITgcm_c*.tar.gz` 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 # echo " Remove $xx" # /bin/rm -f $xx fi fi done fi else echo "missing file '$version_file' !" fi