diff options
Diffstat (limited to 'm')
-rw-r--r-- | m/Makefile | 8 | ||||
-rw-r--r-- | m/WeylScal4.m | 2 | ||||
-rw-r--r-- | m/copy-if-changed.sh | 127 |
3 files changed, 86 insertions, 51 deletions
@@ -8,8 +8,12 @@ all: WeylScal4.out WeylScal4.out: WeylScal4.m rm -rf WeylScal4 ./runmath.sh $^ - for thorn in WeylScal*; do \ - ./copy-if-changed.sh $$thorn ../$$thorn; \ + for thorn in WeylScal*; do \ + ./copy-if-changed.sh $$thorn/configuration.ccl ../../$$thorn/configuration.ccl && \ + ./copy-if-changed.sh $$thorn/interface.ccl ../../$$thorn/interface.ccl && \ + ./copy-if-changed.sh $$thorn/param.ccl ../../$$thorn/param.ccl && \ + ./copy-if-changed.sh $$thorn/schedule.ccl ../../$$thorn/schedule.ccl && \ + ./copy-if-changed.sh $$thorn/src ../../$$thorn/src; \ done clean: diff --git a/m/WeylScal4.m b/m/WeylScal4.m index 51b1912..eed4fae 100644 --- a/m/WeylScal4.m +++ b/m/WeylScal4.m @@ -1,6 +1,8 @@ $Path = Join[$Path, {"~/Calpha/kranc/Tools/CodeGen", "~/Calpha/kranc/Tools/MathematicaMisc"}]; +$RecursionLimit = 1000; + Get["KrancThorn`"]; (*SetDebugLevel[InfoFull];*) diff --git a/m/copy-if-changed.sh b/m/copy-if-changed.sh index 46356f7..a8403d0 100644 --- a/m/copy-if-changed.sh +++ b/m/copy-if-changed.sh @@ -1,71 +1,100 @@ #! /bin/bash +set -e + src=$1 dst=$2 # Copy tree $src to tree $dst -# Both $src and $dst must be directories. $dst is created if it does -# not exist - -# All files in the source tree are checked; if they already exist in -# the destination tree and are identical, they are ignored, otherwise -# they are copied. Missing directories are created. - -# All files in the destination tree are checked; if they do not exist -# in the source tree, they are deleted. if test -z "$src" || test -z "$dst" || test "$src" = "$dst"; then echo "Usage: $0 <src> <dst>" exit 1 fi -test -d $src || exit 2 -test -e $dst || mkdir -p $dst -test -d $dst || exit 3 -# Create all directories -for dir in $(cd $src && find . -type d); do - dstdir=$dst/$dir - if test -d $dstdir; then - : # directory exists; do nothing - else - echo mkdir $dstdir - mkdir -p $dstdir - fi -done -# Delete directories which do not exist -for dir in $(cd $dst && find . -type d); do - srcdir=$src/$dir - dstdir=$dst/$dir - if test -d $srcdir; then - : # directory exists; do nothing - else - echo rm -rf $dstdir - #rm -rf $dstdir - fi -done -# Copy files that differ -for file in $(cd $src && find . -type f); do - srcfile=$src/$file - dstfile=$dst/$file +if test -f $src; then + + # Both $src and $dst must be files. + + test -f $dst || exit 3 + + # Copy file if it differs + srcfile=$src + dstfile=$dst if cmp -s $srcfile $dstfile; then : # unchanged; do nothing else echo cp $srcfile cp $srcfile $dstfile fi -done + +fi -# Delete files which do not exist -for file in $(cd $dst && find . -type f); do - srcfile=$src/$file - dstfile=$dst/$file - if test -e $srcfile; then - : # file exists; do nothing - else - echo rm $dstfile - rm $dstfile - fi -done + + +if test -d $src; then + + # Both $src and $dst must be directories. $dst is created if it + # does not exist + + # All files in the source tree are checked; if they already exist + # in the destination tree and are identical, they are ignored, + # otherwise they are copied. Missing directories are created. + + # All files in the destination tree are checked; if they do not + # exist in the source tree, they are deleted. + + test -e $dst || mkdir -p $dst + test -d $dst || exit 3 + + # Create all directories + for dir in $(cd $src && find . -type d); do + dstdir=$dst/$dir + if test -d $dstdir; then + : # directory exists; do nothing + else + echo mkdir $dstdir + mkdir -p $dstdir + fi + done + + # Delete directories which do not exist + for dir in $(cd $dst && find . -name 'CVS' -prune -name '.svn' -prune -name '.git' -prune -name '.hg' -prune -name '_darcs' -prune -type d -print); do + srcdir=$src/$dir + dstdir=$dst/$dir + if test -d $srcdir; then + : # directory exists; do nothing + else + echo rm -rf $dstdir + rm -rf $dstdir + fi + done + + # Copy files that differ + for file in $(cd $src && find . -type f); do + srcfile=$src/$file + dstfile=$dst/$file + if cmp -s $srcfile $dstfile; then + : # unchanged; do nothing + else + echo cp $srcfile + cp $srcfile $dstfile + fi + done + + # Delete files which do not exist + for file in $(cd $dst && find . -name 'CVS' -prune -name '.svn' -prune -name '.git' -prune -name '.hg' -prune -name '_darcs' -prune -type f -print); do + srcfile=$src/$file + dstfile=$dst/$file + if test -e $srcfile; then + : # file exists; do nothing + else + echo rm $dstfile + rm $dstfile + fi + done + +fi |