diff --git a/bin/foamBinDirs b/bin/foamBinDirs deleted file mode 100755 index ef96dee328db3882d6bd9e5c4504a70970687391..0000000000000000000000000000000000000000 --- a/bin/foamBinDirs +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/sh -#---------------------------------*- sh -*------------------------------------- -# ========= | -# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox -# \\ / O peration | -# \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. -# \\/ M anipulation | -#------------------------------------------------------------------------------ -# License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. -# -# Script -# foamBinDirs <packDir> <arch> -# -# Description -# Returns all directories containing binary files of OpenFOAM -# -#------------------------------------------------------------------------------ - -if [ $# -ne 2 ] -then - echo "Error: architecture type expected, exiting" - echo - echo "Usage : ${0##*/} <packDir> <arch>" - echo - exit 1 -fi -packDir=$1 -arch=$2 - -# base arch (w/o precision, optimization, etc) -baseArch=$(echo "$arch" | sed -e 's@[DS]P.*$@@') - -# get list of directories -( - for dir in \ - $packDir/lib/$arch \ - $packDir/applications/bin/$arch \ - $packDir/wmake/rules \ - $packDir/wmake/bin/$baseArch \ - ; - do - [ -d $dir ] && echo $dir - done -) - -#------------------------------------------------------------------------------ diff --git a/bin/foamPack b/bin/foamPack index 920bfaf52b1c5e64977b0fc1d05de413bb6f05d4..dd8dab951c47e5cf551fc0b2855555760783d584 100755 --- a/bin/foamPack +++ b/bin/foamPack @@ -1,9 +1,9 @@ #!/bin/sh -#---------------------------------*- sh -*------------------------------------- +#------------------------------------------------------------------------------ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | -# \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. +# \\ / A nd | Copyright (C) 1991-2011 OpenCFD Ltd. # \\/ M anipulation | #------------------------------------------------------------------------------ # License @@ -23,47 +23,102 @@ # along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. # # Script -# foamPack [outputDir] +# foamPack [OPTION] # # Description -# Packs and compresses the OpenFOAM directory for release +# Pack and compress the OpenFOAM directory for release # #------------------------------------------------------------------------------ - -timeStamp=$(date +%Y-%m-%d) packDir=$WM_PROJECT-$WM_PROJECT_VERSION -packFile=${packDir}_${timeStamp}.gtgz +toolsDir="${0%/*}/tools" # this script is located in the tools/ parent dir -if [ ! -d $packDir ] -then - echo "Error: directory $packDir does not exist" +usage() { + while [ $# -gt 0 ]; do echo "$1" 1>&2; shift; done +cat <<USAGE 1>&2 +Usage: ${0##*/} [OPTION] +options: + -o <dir> specify alternative output directory + -nogit bypass using 'git archive' + +* Pack and compress OpenFOAM directory for release + +USAGE exit 1 -fi +} + +unset prefix outputDir nogit +# parse options +while [ "$#" -gt 0 ] +do + case "$1" in + -h | -help) + usage + ;; + -nogit) + nogit=true + shift + ;; + -o | -output) + [ "$#" -ge 2 ] || usage "'$1' option requires an argument" + outputDir=${2%%/} + shift 2 + ;; + -*) + usage "unknown option: '$*'" + ;; + *) + break + ;; + esac +done + +# check for essential directories +for dir in $packDir +do + [ -d $dir ] || { + echo "Error: directory $dir does not exist" 1>&2 + exit 1 + } +done + + +#------------------------------------------------------------------------------ +timeStamp=$(date +%Y-%m-%d) +packExt=tgz +packBase=${packDir}_${timeStamp} # add optional output directory -if [ -d "$1" ] -then - packFile="$1/$packFile" -fi +[ -d "$outputDir" ] && packBase="$outputDir/$packBase" +packFile=$packBase.$packExt +# avoid overwriting old pack file if [ -f $packFile ] then - echo "Error: $packFile already exists" + echo "Error: $packFile already exists" 1>&2 exit 1 fi -# Create time stamp file -# ~~~~~~~~~~~~~~~~~~~~~~ - +# add time-stamp file before packing echo $timeStamp 2>/dev/null > $packDir/.timeStamp -# Pack and compress the packFile -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +# check for git (program and .git directory) +(cd $packDir && git branch) > /dev/null 2>&1 || nogit=true + +if [ "$nogit" = true ] +then + echo "pack manually" 1>&2 + $toolsDir/foamPackSource $packDir $packFile +else + echo "pack with git-archive" 1>&2 + ( cd $packDir && git archive --format=tar --prefix=$packDir/ HEAD) > $packBase.tar -echo -echo "Packing $packDir source files into $packFile" -echo + echo "add in time-stamp and lnInclude directories" 1>&2 + tar cf $packBase.tar2 $packDir/.timeStamp $packDir/.build `find -H $packDir -type d -name lnInclude` + tar Af $packBase.tar $packBase.tar2 -foamPackSource $packDir $packFile + echo "gzip tar file" 1>&2 + gzip -c9 $packBase.tar > $packFile + rm -f $packBase.tar $packBase.tar2 2>/dev/null +fi #------------------------------------------------------------------------------ diff --git a/bin/foamPackBin b/bin/foamPackBin index 3a6358f5970def5c8910a0463a9e50441e6bf638..fa0fb00150940e0840182eb8f27ee588e0ab1bc8 100755 --- a/bin/foamPackBin +++ b/bin/foamPackBin @@ -3,7 +3,7 @@ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | -# \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. +# \\ / A nd | Copyright (C) 1991-2011 OpenCFD Ltd. # \\/ M anipulation | #------------------------------------------------------------------------------- # License @@ -23,66 +23,119 @@ # along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. # # Script -# foamPackBin <arch> [outputDir] +# foamPackBin [OPTION] <archOptions> # # Description -# Packs and compresses binary version of OpenFOAM for release +# Pack and compress binary version of OpenFOAM for release +# +# Script +# foamPackThirdPartyBin [OPTION] <archOptions> +# +# Description +# Pack and compress binary version of OpenFOAM ThirdParty for release # #------------------------------------------------------------------------------ +toolsDir="${0%/*}/tools" # this script is located in the tools/ parent dir -if [ $# -eq 0 ] -then - echo "Error: architecture type expected, exiting" - echo - echo "Usage : ${0##*/} <arch> [outputDir]" - echo +case "${0##*/}" in +*ThirdParty*) + # for ThirdParty + codeBase="OpenFOAM ThirdParty" + packDir=ThirdParty-$WM_PROJECT_VERSION + listBinDirs=$toolsDir/foamListThirdPartyBinDirs + ;; +*) + # regular + codeBase="OpenFOAM ThirdParty" + packDir=$WM_PROJECT-$WM_PROJECT_VERSION + listBinDirs=$toolsDir/foamListBinDirs + ;; +esac + + +usage() { + while [ $# -gt 0 ]; do echo "$1" 1>&2; shift; done +cat <<USAGE 1>&2 +Usage: ${0##*/} [OPTION] <archOptions> +options: + -o <dir> specify alternative output directory + +* Pack and compress binary version of $codeBase for release + + The value of 'archOptions' normally corresponds to \$WM_OPTIONS + The current value of \$WM_OPTIONS = $WM_OPTIONS + +USAGE exit 1 -fi -arch=$1 +} -# base arch (w/o precision, optimization, etc) -baseArch=$(echo "$arch" | sed -e 's@[DS]P.*$@@') +unset prefix outputDir +# parse options +while [ "$#" -gt 0 ] +do + case "$1" in + -h | -help) + usage + ;; + -o | -output) + [ "$#" -ge 2 ] || usage "'$1' option requires an argument" + outputDir=${2%%/} + shift 2 + ;; + -*) + usage "unknown option: '$*'" + ;; + *) + break + ;; + esac +done + +[ $# -eq 1 ] || usage "Error: specify architecture" + +# same as $WM_OPTIONS - eg, 'linux64GccDPOpt' +archOptions="$1" + +#------------------------------------------------------------------------------ timeStamp=$(date +%Y-%m-%d) -packDir=$WM_PROJECT-$WM_PROJECT_VERSION -packFile=${packDir}.${arch}_${timeStamp}.gtgz +packExt=tgz +packBase=${packDir}.${archOptions}_${timeStamp} # add optional output directory -if [ -d "$2" ] -then - packFile="$2/$packFile" -fi +[ -d "$outputDir" ] && packBase="$outputDir/$packBase" +packFile=$packBase.$packExt +# avoid overwriting old pack file if [ -f $packFile ] then - echo "Error: $packFile already exists" + echo "Error: $packFile already exists" 1>&2 exit 1 fi -# check for essential directories -for dir in $packDir $packDir/lib/$arch $packDir/applications/bin/$arch -do - if [ ! -d $dir ] - then - echo "Error: directory $dir does not exist" - exit 1 - fi -done + +#------------------------------------------------------------------------------ # get list of directories -dirList=`foamBinDirs $packDir $arch` +dirList=$( $listBinDirs $packDir $archOptions ) +if [ $? -eq 0 -a -n "$dirList" ] +then + echo "Pack into $packFile" 1>&2 + echo 1>&2 +else + exit 1 +fi -echo -echo "Packing $arch ($baseArch) port of $packDir into $packFile" -echo -tar czpf $packFile $dirList +# Clean up on Ctrl-C +trap 'rm -f $packFile 2>/dev/null' INT +tar cpzf $packFile $dirList if [ $? -eq 0 ] then - echo "Finished packing and compressing file $packFile" + echo "Finished packing file $packFile" 1>&2 else - echo "Error: failure packing $packFile" + echo "Error: failure packing $packFile" 1>&2 rm -f $packFile 2>/dev/null fi diff --git a/bin/foamPackBinAll b/bin/foamPackBinAll index ce16058b64f26882261486dcc310b882c2881706..8d56e5701f150107f93e8ea0c8176df02a3e76ad 100755 --- a/bin/foamPackBinAll +++ b/bin/foamPackBinAll @@ -3,7 +3,7 @@ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | -# \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. +# \\ / A nd | Copyright (C) 1991-2011 OpenCFD Ltd. # \\/ M anipulation | #------------------------------------------------------------------------------- # License @@ -23,24 +23,44 @@ # along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. # # Script -# foamPackBinAll [outputDir] +# foamPackBinAll [OPTION] # # Description -# Packs and compresses all binary versions of foam for release +# Pack and compress all binary versions of OpenFOAM for release +# +# Script +# foamPackThirdPartyBinAll [OPTION] +# +# Description +# Pack and compress all binary versions of OpenFOAM ThirdParty for release # #------------------------------------------------------------------------------ -packDir=$WM_PROJECT-$WM_PROJECT_VERSION +binDir="${0%/*}" # this script is located in the bin/ dir -if [ ! -d $packDir ] -then - echo "Error: directory $packDir does not exist" +case "${0##*/}" in +*ThirdParty*) + # for ThirdParty + packDir=ThirdParty-$WM_PROJECT_VERSION + packBin=foamPackThirdPartyBin + ;; +*) + # regular + packDir=$WM_PROJECT-$WM_PROJECT_VERSION + packBin=foamPackBin + ;; +esac + + +[ -d $packDir ] || { + echo "Error: directory $packDir does not exist" 1>&2 exit 1 -fi +} + -# obtain arch types from lib/ -for bin in $packDir/lib/* +# obtain archOptions types from lib/ +for archOptions in $packDir/lib/* do - foamPackBin ${bin##*/} $@ + $binDir/$packBin $@ ${archOptions##*/} done #------------------------------------------------------------------------------ diff --git a/bin/foamPackDoxygen b/bin/foamPackDoxygen index f93e41cd6df9212508b53cb45d957efdefaf8c42..c9337e972f4ce3a9262087f42d5e5947eb397670 100755 --- a/bin/foamPackDoxygen +++ b/bin/foamPackDoxygen @@ -3,7 +3,7 @@ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | -# \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. +# \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd. # \\/ M anipulation | #------------------------------------------------------------------------------- # License @@ -26,39 +26,44 @@ # foamPackDoxygen [-prefix DIR] [-o outputDir] # # Description -# Packs and compresses the OpenFOAM doxygen html for release +# Pack and compress the OpenFOAM doxygen html for release # #------------------------------------------------------------------------------ packDir=$WM_PROJECT-$WM_PROJECT_VERSION -packTag=_Doxygen.gtgz +htmlDir=doc/Doxygen/html usage() { while [ $# -gt 0 ]; do echo "$1" 1>&2; shift; done cat <<USAGE 1>&2 -Usage: ${0##*/} [-prefix DIR] [-o outputDir] +Usage: ${0##*/} [OPTION] +options: + -prefix <dir> use alternative prefix + -o <dir> specify alternative output directory - Packs and compresses the OpenFOAM doxygen html for release +* Pack and compress the OpenFOAM doxygen html for release USAGE exit 1 } unset prefix outputDir - +# parse options while [ "$#" -gt 0 ] do case $1 in - -prefix | --prefix ) + -h | -help) + usage + ;; + -prefix | --prefix) + [ "$#" -ge 2 ] || usage "'$1' option requires an argument" prefix=${2%%/} shift 2 ;; - -o | -output ) + -o | -output) + [ "$#" -ge 2 ] || usage "'$1' option requires an argument" outputDir=${2%%/} shift 2 ;; - -h | -help ) - usage - ;; -*) usage "unknown option: '$*'" ;; @@ -81,41 +86,44 @@ then exit 1 fi -# +#------------------------------------------------------------------------------ +packExt=tgz +packName=${packDir}_Doxygen + # add optional output directory -# -if [ -d "$outputDir" ] -then - packFile="$outputDir/$packDir$packTag" -else - packFile="$packDir$packTag" -fi +[ -d "$outputDir" ] && packName="$outputDir/$packName" +packFile=$packName.$packExt if [ -f $packFile ] then - echo "Error: $packFile already exists" + echo "Error: $packFile already exists" 1>&2 exit 1 fi -# Pack and compress the packFile using GNU tar -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ -echo -echo "Packing doxygen html into $packFile" -echo +cat <<INFO 1>&2 +------------------------------------------------------------------------------- +Packing doxygen html into $packFile + +INFO + +# Clean up on Ctrl-C +trap 'rm -f $packFile 2>/dev/null' INT if [ -n "$prefix" ] then - tar czpf $packFile --transform="s@^@$prefix/@" doc/Doxygen/html + # requires GNU tar + tar cpzf $packFile --transform="s@^@$prefix/@" $htmlDir else - tar czpf $packFile $packDir/doc/Doxygen/html + tar cpzf $packFile $packDir/$htmlDir fi if [ $? -eq 0 ] then - echo "Finished packing doxygen html into file $packFile" + echo "Finished packing doxygen html into file $packFile" 1>&2 else - echo "Error: failure packing doxygen html file $packFile" + echo "Error: failure packing doxygen html file $packFile" 1>&2 + rm -f $packFile 2>/dev/null fi #------------------------------------------------------------------------------ diff --git a/bin/foamPackThirdParty b/bin/foamPackThirdParty index 4cd5b9c9ee6dd2bb4885a96f46b303e475d3866c..e0f07178d74e541a8a5e06339479f5b7e49b72c9 100755 --- a/bin/foamPackThirdParty +++ b/bin/foamPackThirdParty @@ -1,9 +1,9 @@ #!/bin/sh -#---------------------------------*- sh -*------------------------------------- +#------------------------------------------------------------------------------ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | -# \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. +# \\ / A nd | Copyright (C) 2008-2011 OpenCFD Ltd. # \\/ M anipulation | #------------------------------------------------------------------------------ # License @@ -23,48 +23,86 @@ # along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. # # Script -# foamPackThirdParty [outputDir] +# foamPackThirdParty [OPTION] # # Description -# Packs and compresses the OpenFOAM ThirdParty directory for release +# Pack and compress the OpenFOAM ThirdParty directory for release # #------------------------------------------------------------------------------ +packDir=ThirdParty-$WM_PROJECT_VERSION +toolsDir="${0%/*}/tools" # this script is located in the tools/ parent dir -timeStamp=$(date +%Y-%m-%d) -packDir=${WM_THIRD_PARTY_DIR:-ThirdParty} -packDir=${packDir##*/} -packFile=${packDir}_${timeStamp}.gtgz +usage() { + while [ $# -gt 0 ]; do echo "$1" 1>&2; shift; done +cat <<USAGE 1>&2 +Usage: ${0##*/} [OPTION] +options: + -o <dir> specify alternative output directory -if [ ! -d $packDir ] -then - echo "Error: directory $packDir does not exist" +* Pack and compress ThirdParty directory for release + +USAGE exit 1 -fi +} + +unset prefix outputDir nogit +# parse options +while [ "$#" -gt 0 ] +do + case "$1" in + -h | -help) + usage + ;; + -nogit) + nogit=true + shift + ;; + -o | -output) + [ "$#" -ge 2 ] || usage "'$1' option requires an argument" + outputDir=${2%%/} + shift 2 + ;; + -*) + usage "unknown option: '$*'" + ;; + *) + break + ;; + esac +done + +# check for essential directories +for dir in $packDir +do + [ -d $dir ] || { + echo "Error: directory $dir does not exist" 1>&2 + exit 1 + } +done + + +#------------------------------------------------------------------------------ +timeStamp=$(date +%Y-%m-%d) +packExt=tgz +packBase=${packDir}_${timeStamp} # add optional output directory -if [ -d "$1" ] -then - packFile="$1/$packFile" -fi +[ -d "$outputDir" ] && packBase="$outputDir/$packBase" +packFile=$packBase.$packExt +# avoid overwriting old pack file if [ -f $packFile ] then echo "Error: $packFile already exists" exit 1 fi -# Create time stamp file -# ~~~~~~~~~~~~~~~~~~~~~~ -echo $timeStamp 2>/dev/null > $packDir/.timeStamp - -# Pack and compress the packFile -# ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - -echo -echo "Packing $packDir source files into $packFile" -echo +#------------------------------------------------------------------------------ -foamPackSource $packDir $packFile +# add time-stamp file before packing +echo $timeStamp 2>/dev/null > $packDir/.timeStamp +echo "pack manually" 1>&2 +$toolsDir/foamPackSource $packDir $packFile #------------------------------------------------------------------------------ diff --git a/bin/foamPackThirdPartyBin b/bin/foamPackThirdPartyBin deleted file mode 100755 index 8e478ddcd49b948aae6a134e9deaae71e65ffbf0..0000000000000000000000000000000000000000 --- a/bin/foamPackThirdPartyBin +++ /dev/null @@ -1,88 +0,0 @@ -#!/bin/sh -#------------------------------------------------------------------------------ -# ========= | -# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox -# \\ / O peration | -# \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. -# \\/ M anipulation | -#------------------------------------------------------------------------------- -# License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. -# -# Script -# foamPackThirdPartyBin <archOptions> [outputDir] -# -# Description -# Packs and compresses binary version of OpenFOAM ThirdParty for release -# -#------------------------------------------------------------------------------ - -if [ $# -eq 0 ] -then - echo "Error: archOptions type expected, exiting" - echo - echo "Usage : ${0##*/} <archOptions> [outputDir]" - echo - exit 1 -fi -archOptions=$1 -arch=${archOptions%%G*} # TODO: works for Gcc only -arch3264=$(echo "$arch" | sed -e 's@64@-64@') - -echo "archOptions=$archOptions" -echo "arch=$arch" -echo "arch3264=$arch3264" - -timeStamp=$(date +%Y-%m-%d) -packDir=${WM_THIRD_PARTY_DIR:-ThirdParty} -packDir=${packDir##*/} -packFile=${packDir}.${archOptions}_${timeStamp}.gtgz - -if [ ! -d $packDir ] -then - echo "Error: directory $packDir does not exist" - exit 1 -fi - -# add optional output directory -if [ -d "$2" ] -then - packFile="$2/$packFile" -fi - -if [ -f $packFile ] -then - echo "Error: $packFile already exists" - exit 1 -fi - -# get list of directories -dirList=`find $packDir -type d -name $arch -o -type d -name $archOptions'*' -o -type l -name $arch3264` -echo -echo "Packing $archOptions port of $packDir into $packFile" -echo - -tar czpf $packFile $dirList - -if [ $? -eq 0 ] -then - echo "Finished packing and compressing file $packFile" -else - echo "Error: failure packing $packFile" - rm -f $packFile 2>/dev/null -fi - -#------------------------------------------------------------------------------ diff --git a/bin/foamPackThirdPartyBin b/bin/foamPackThirdPartyBin new file mode 120000 index 0000000000000000000000000000000000000000..4841836eb6bbfc8fc3a822e242ee8974357770e9 --- /dev/null +++ b/bin/foamPackThirdPartyBin @@ -0,0 +1 @@ +foamPackBin \ No newline at end of file diff --git a/bin/foamPackThirdPartyBinAll b/bin/foamPackThirdPartyBinAll new file mode 120000 index 0000000000000000000000000000000000000000..d37f60a48ac388b34e6eb1f4b31e885f7205b79e --- /dev/null +++ b/bin/foamPackThirdPartyBinAll @@ -0,0 +1 @@ +foamPackBinAll \ No newline at end of file diff --git a/bin/foamSourceFiles b/bin/foamSourceFiles deleted file mode 100755 index f20e7927ce754504ddd95610c269e6dee0d3b979..0000000000000000000000000000000000000000 --- a/bin/foamSourceFiles +++ /dev/null @@ -1,81 +0,0 @@ -#!/bin/sh -#---------------------------------*- sh -*------------------------------------- -# ========= | -# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox -# \\ / O peration | -# \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. -# \\/ M anipulation | -#------------------------------------------------------------------------------ -# License -# This file is part of OpenFOAM. -# -# OpenFOAM is free software: you can redistribute it and/or modify it -# under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT -# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or -# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License -# for more details. -# -# You should have received a copy of the GNU General Public License -# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. -# -# Script -# foamSourceFiles <directory> -# -# Description -# Returns all the .C and .H files and Make/options -# and Make/files in a given directory. -# -#------------------------------------------------------------------------------ - -if [ $# -ne 1 ] -then - echo "Usage : ${0##*/} directory" - echo "" - echo "Returns all .C and .H files and Make/options and Make/files." - echo "" - exit 1 -fi - -# canonical form (no double and no trailing dashes) -packDir=$(echo "$1" | sed -e 's@//*@/@g' -e 's@/$@@') - -if [ ! -d $packDir ] -then - echo "Error: directory $packDir does not exist" - exit 1 -fi - -find -H $packDir \ - ! -type d \ - \( -type f -o -type l \) \ - ! -name "*~" \ - -a ! -name ".*~" \ - -a ! -name "*.orig" \ - -a ! -name "*.dep" \ - -a ! -name "*.o" \ - -a ! -name "*.so" \ - -a ! -name "*.a" \ - -a ! -name "*.tgz" \ - -a ! -name "core" \ - -a ! -name "core.[1-9]*" \ - -a ! -name "libccmio*" \ -| sed \ - -e "\@$packDir/lib/@d" \ - -e '\@/\.git/@d' \ - -e '\@/\.gitignore@d' \ - -e '\@/\.tags/@d' \ - -e '\@/\README\.org@d' \ - -e '\@applications/bin/@d' \ - -e '\@wmake/bin/@d' \ - -e '\@/t/@d' \ - -e '\@/Make[.A-Za-z]*/[^/]*/@d'\ - -e '\@/platforms/@d' \ - -e '\@/download/@d' \ - -e '\@/libccmio-.*/@d' \ - -e '\@/debian/@d' - -#------------------------------------------------------------------------------ diff --git a/bin/tools/foamListBinDirs b/bin/tools/foamListBinDirs new file mode 100755 index 0000000000000000000000000000000000000000..ac67b796d045e05bd34ead416cc1f2b64ed1ce4f --- /dev/null +++ b/bin/tools/foamListBinDirs @@ -0,0 +1,121 @@ +#!/bin/sh +#------------------------------------------------------------------------------ +# ========= | +# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox +# \\ / O peration | +# \\ / A nd | Copyright (C) 1991-2011 OpenCFD Ltd. +# \\/ M anipulation | +#------------------------------------------------------------------------------- +# License +# This file is part of OpenFOAM. +# +# OpenFOAM is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. +# +# Script +# foamListBinDirs <directory> <archOptions> +# +# Description +# Lists directories containing binary files of OpenFOAM +# +# Note +# Not normally called directly by the user. +#------------------------------------------------------------------------------ +toolsDir="${0%/*}" # this script is already located in the tools/ directory + +[ $# -eq 2 ] || { +cat <<USAGE 1>&2 +Usage : ${0##*/} <packDir> <archOptions> + +* Lists directories containing binary files for OpenFOAM + + The value of 'archOptions' normally corresponds to \$WM_OPTIONS + The current value of \$WM_OPTIONS = $WM_OPTIONS + +USAGE + exit 1 +} + +#------------------------------------------------------------------------------ +packDir="$1" + +# same as $WM_OPTIONS - eg, 'linux64GccDPOpt' +archOptions="$2" + +# base arch (w/o precision, optimization, etc) +# same as "$WM_ARCH$WM_COMPILER" +archCompiler=$(echo "$archOptions" | sed -e 's@[DS]P.*$@@') + +# same as $WM_ARCH - eg, 'linux64' +# TODO: only works for Gcc, Icc, Clang +archOS=$(echo "$archOptions" | sed -e 's@[GI]cc.*$@@' -e 's@Clang.*$@@') + +# links for 32-bit version, eg convert linux64 -> linux-64 +arch3264=$(echo "$archOS" | sed -e 's@64@-64@') + + +#------------------------------------------------------------------------------ + +# check for essential directories +for dir in $packDir $packDir/lib/$archOptions +do + [ -d $dir ] || { + echo "Error: directory $dir does not exist" 1>&2 + exit 1 + } +done + +# check new/old places for executables - same as $FOAM_APPBIN +[ -d $packDir/bin/$archOptions -o -d $packDir/applications/bin/$archOptions ] || { +cat <<BIN_CHECK 1>&2 +Error: no directory for executables exists: + $packDir/bin/$archOptions + $packDir/applications/bin/$archOptions +BIN_CHECK + exit 1 +} + + +#------------------------------------------------------------------------------ +# list of directories +dirList=$( + for dir in \ + $packDir/bin/$archOptions \ + $packDir/lib/$archOptions \ + $packDir/applications/bin/$archOptions \ + $packDir/wmake/bin/$archCompiler \ + $packDir/wmake/bin/$archOS \ + $packDir/wmake/rules/General \ + $packDir/wmake/rules/$archCompiler \ + $packDir/wmake/rules/$archOS \ + ; + do + [ -d $dir ] && echo $dir + done +) + + +cat <<INFO 1>&2 +------------------------------------------------------------------------------- +Packing $archOptions ($archCompiler) port of $packDir + archOS = $archOS + 32bit archOS = $arch3264 + +dirs: + $(echo ${dirList:-NONE}) + +INFO + +echo "$dirList" + +#------------------------------------------------------------------------------ diff --git a/bin/tools/foamListSourceFiles b/bin/tools/foamListSourceFiles new file mode 100755 index 0000000000000000000000000000000000000000..81e299c4a15f0d4967785178465ac90a95d836e5 --- /dev/null +++ b/bin/tools/foamListSourceFiles @@ -0,0 +1,93 @@ +#!/bin/sh +#------------------------------------------------------------------------------ +# ========= | +# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox +# \\ / O peration | +# \\ / A nd | Copyright (C) 1991-2011 OpenCFD Ltd. +# \\/ M anipulation | +#------------------------------------------------------------------------------ +# License +# This file is part of OpenFOAM. +# +# OpenFOAM is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. +# +# Script +# foamListSourceFiles <directory> +# +# Description +# Lists source files and Make/{files,options} in given directory +# +# Note +# Not normally called directly by the user. +#------------------------------------------------------------------------------ + +[ $# -eq 1 ] || { +cat <<USAGE 1>&2 +Usage : ${0##*/} directory + +* Lists source files and Make/{files,options} in given directory + +USAGE + exit 1 +} + +# canonical form (no double and no trailing dashes) +packDir=$(echo "$1" | sed -e 's@//*@/@g' -e 's@/$@@') + +# check for essential directories +[ -d $packDir ] || { + echo "Error: directory $packDir does not exist" 1>&2 + exit 1 +} + + +# +# list of files but excluding +# - dependent files (dep, obj, lib), archives +# - exclude Doxygen documentation etc +# + +find -H $packDir \ + ! -type d \ + \( -type f -o -type l \) \ + ! -name "*~" \ + -a ! -name ".*~" \ + -a ! -name "*.orig" \ + -a ! -name "*.dep" \ + -a ! -name "*.o" \ + -a ! -name "*.so" \ + -a ! -name "*.a" \ + -a ! -name "*.tar" \ + -a ! -name "*.tar.gz" \ + -a ! -name "*.tgz" \ + -a ! -name "core" \ + -a ! -name "core.[1-9]*" \ + -a ! -name "libccmio*" \ +| sed \ + -e "\@$packDir/lib/@d" \ + -e '\@/\.git/@d' \ + -e '\@/\.tags/@d' \ + -e '\@/README\.org@d' \ + -e '\@/bin/[^/]*/@{ \@/bin/tools/@!d }' \ + -e '\@/lib/@d' \ + -e '\@/platforms/@d' \ + -e '\@/t/@d' \ + -e '\@/Make[.A-Za-z]*/[^/]*/@d' \ + -e '\@/[Dd]oxygen/html/@d' \ + -e '\@/download/@d' \ + -e '\@/libccmio-.*/@d' \ + -e '\@/debian/@d' + + +#------------------------------------------------------------------------------ diff --git a/bin/tools/foamListThirdPartyBinDirs b/bin/tools/foamListThirdPartyBinDirs new file mode 100755 index 0000000000000000000000000000000000000000..319961b944173c234be9971193e8c7af8af066ad --- /dev/null +++ b/bin/tools/foamListThirdPartyBinDirs @@ -0,0 +1,121 @@ +#!/bin/sh +#------------------------------------------------------------------------------ +# ========= | +# \\ / F ield | OpenFOAM: The Open Source CFD Toolbox +# \\ / O peration | +# \\ / A nd | Copyright (C) 2011-2011 OpenCFD Ltd. +# \\/ M anipulation | +#------------------------------------------------------------------------------- +# License +# This file is part of OpenFOAM. +# +# OpenFOAM is free software: you can redistribute it and/or modify it +# under the terms of the GNU General Public License as published by +# the Free Software Foundation, either version 3 of the License, or +# (at your option) any later version. +# +# OpenFOAM is distributed in the hope that it will be useful, but WITHOUT +# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or +# FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +# for more details. +# +# You should have received a copy of the GNU General Public License +# along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>. +# +# Script +# foamListThirdPartyBinDirs <directory> <archOptions> +# +# Description +# Lists directories containing binary files for OpenFOAM ThirdParty +# +# Note +# Not normally called directly by the user. +#------------------------------------------------------------------------------ +toolsDir="${0%/*}" # this script is already located in the tools/ directory + +[ $# -eq 2 ] || { +cat <<USAGE 1>&2 +Usage : ${0##*/} <packDir> <archOptions> + +* List directories containing binary files for OpenFOAM ThirdParty + + The value of 'archOptions' normally corresponds to \$WM_OPTIONS + The current value of \$WM_OPTIONS = $WM_OPTIONS + +USAGE + exit 1 +} + +#------------------------------------------------------------------------------ +packDir="$1" + +# same as $WM_OPTIONS - eg, 'linux64GccDPOpt' +archOptions="$2" + +# base arch (w/o precision, optimization, etc) +# same as "$WM_ARCH$WM_COMPILER" +archCompiler=$(echo "$archOptions" | sed -e 's@[DS]P.*$@@') + +# same as $WM_ARCH - eg, 'linux64' +# TODO: only works for Gcc, Icc, Clang +archOS=$(echo "$archOptions" | sed -e 's@[GI]cc.*$@@' -e 's@Clang.*$@@') + +# links for 32-bit version, eg convert linux64 -> linux-64 +arch3264=$(echo "$archOS" | sed -e 's@64@-64@') + + +#------------------------------------------------------------------------------ +# check for essential directories +for dir in $packDir $packDir/lib/$archOptions +do + [ -d $dir ] || { + echo "Error: directory $dir does not exist" 1>&2 + exit 1 + } +done + +#------------------------------------------------------------------------------ +# list of directories +dirList=$( + for dir in \ + $packDir/bin/$archOptions \ + $packDir/bin/$archCompiler \ + $packDir/bin/$archOS \ + $packDir/lib/$archOptions \ + $packDir/lib/$archCompiler \ + $packDir/lib/$archOS \ + $packDir/platforms/$archOptions \ + $packDir/platforms/$archCompiler \ + $packDir/platforms/$archOS \ + ; + do + [ -d $dir ] && echo $dir + done + + # add in links for 32-bit version + if [ "$archOS" != "$arch3264" ] + then + for dir in \ + $packDir/platforms/$arch3264 \ + ; + do + [ -d $dir -a -L $dir ] && echo $dir + done + fi +) + + +cat <<INFO 1>&2 +------------------------------------------------------------------------------- +Packing $archOptions ($archCompiler) port of $packDir + archOS = $archOS + 32bit archOS = $arch3264 + +dirs: + $(echo ${dirList:-NONE}) + +INFO + +echo "$dirList" + +#------------------------------------------------------------------------------ diff --git a/bin/foamPackSource b/bin/tools/foamPackSource similarity index 61% rename from bin/foamPackSource rename to bin/tools/foamPackSource index 8305a929a8251208ebcc5a71ce1dcd04a6d7cd10..3f6d547895c2217554343cdcf5da0f0ece3a0ef8 100755 --- a/bin/foamPackSource +++ b/bin/tools/foamPackSource @@ -3,7 +3,7 @@ # ========= | # \\ / F ield | OpenFOAM: The Open Source CFD Toolbox # \\ / O peration | -# \\ / A nd | Copyright (C) 1991-2010 OpenCFD Ltd. +# \\ / A nd | Copyright (C) 1991-2011 OpenCFD Ltd. # \\/ M anipulation | #------------------------------------------------------------------------------- # License @@ -26,54 +26,67 @@ # foamPackSource <directory> <tarFile> # # Description -# Packs and compresses the .C and .H files and Make/options -# and Make/files in a given directory. +# Pack and compress all source files from a given directory. # +# Note +# Not normally called directly by the user #------------------------------------------------------------------------------ tmpFile=${TMPDIR:-/tmp}/foamPackFiles.$$ +toolsDir="${0%/*}" # this script is already located in the tools/ directory -if [ $# -ne 2 ] -then - echo "Usage : ${0##*/} directory tarFile" - echo "" - echo "Packs all .C and .H files and Make/options and Make/files into" - echo "<tarFile>" - echo "" +[ $# -eq 2 ] || { +cat <<USAGE 1>&2 +Usage : ${0##*/} directory tarFile + +* Pack and compress all source files from a given directory into <tarFile> + +USAGE exit 1 -fi +} # canonical form (no double and no trailing dashes) packDir=$(echo "$1" | sed -e 's@//*@/@g' -e 's@/$@@') packFile=$2 -if [ ! -d $packDir ] -then - echo "Error: directory $packDir does not exist" +# check for essential directories +[ -d $packDir ] || { + echo "Error: directory $packDir does not exist" 1>&2 exit 1 -fi +} + +# avoid overwriting old pack file if [ -f $packFile ] then - echo "Error: $packFile already exists" + echo "Error: $packFile already exists" 1>&2 exit 1 fi # Clean up on termination and on Ctrl-C trap 'rm -f $tmpFile 2>/dev/null; exit 0' EXIT TERM INT -foamSourceFiles $packDir > $tmpFile +# get all names +$toolsDir/foamListSourceFiles $packDir > $tmpFile # provide some feedback -wc $tmpFile | awk '{print "Packing",$1,"files - this could take some time ..."}' +cat <<INFO 1>&2 +------------------------------------------------------------------------------- +Packing $packDir source files into $packFile + +INFO +wc $tmpFile | awk '{print "Packing",$1,"files - this could take some time ..."}' 1>&2 + -tar czpf $packFile --files-from $tmpFile +# Clean up on Ctrl-C +trap 'rm -f $packFile $tmpFile 2>/dev/null' INT +tar cpzf $packFile --files-from $tmpFile if [ $? -eq 0 ] then - echo "Finished packing and compressing $packDir into file $packFile" + echo "Finished packing $packDir into file $packFile" 1>&2 else - echo "Error: failure packing $packDir into file $packFile" + echo "Error: failure packing $packDir into file $packFile" 1>&2 rm -f $packFile 2>/dev/null fi