diff --git a/bin/foamCopySettings b/bin/foamCopySettings index 8f461a008b..d066b275df 100755 --- a/bin/foamCopySettings +++ b/bin/foamCopySettings @@ -32,18 +32,27 @@ # Copy OpenFOAM settings from one case to another, without copying # the mesh or results # - requires rsync +# +# Note +# The foamCopySettings.rc (found with the ~OpenFOAM expansion) can be used +# to add any custom rsync options. #------------------------------------------------------------------------------ +Script=${0##*/} if [ "$1" = "-h" -o "$1" = "-help" -o "$#" -ne 2 ] then cat <&2 -Usage: ${0##*/} srcDir dstDir +Usage: $Script srcDir dstDir Copy OpenFOAM settings from one case to another, without copying the mesh or results. - requires rsync +Note + The $Script.rc (found with the ~OpenFOAM expansion) can be used + to add any custom rsync options. + USAGE - exit 1 + exit 1 fi srcDir=${1%/} @@ -66,13 +75,40 @@ do done # files and directories to copy -# avoid processor directories +# avoid processor directories here too to make for cleaner output fileList=$(find -H $srcDir -mindepth 1 -maxdepth 1 -not -name "processor*") + +# avoid polyMesh and processor* directories +rsync="rsync --exclude polyMesh --exclude processor*" + + +# +# get any extra options +# only extract lines starting with --option xxx +# +if rcFile=$(foamEtcFile $Script.rc) +then + userOpts=$( + cat $rcFile | while read userOpts + do + [ "${userOpts##--}" != "${userOpts}" ] && echo $userOpts + done + ) + rsync="$rsync $userOpts" +fi + + # TODO: # - verify that it works with multiple mesh regions # - special treatment for starting with negative crank angles + +echo +echo "synchronizing with" +echo " $rsync" +echo + for i in $fileList do name="${i##*/}" @@ -85,7 +121,7 @@ do ;; *) echo "$i -> $dstDir/$name" - rsync --exclude polyMesh --exclude "processor*" -a $i $dstDir + $rsync -a $i $dstDir ;; esac done