From cf65eebcd55707625684832ced9d9a8be1a96ad6 Mon Sep 17 00:00:00 2001 From: Mark Olesen <Mark.Olesen@Germany> Date: Tue, 15 Feb 2011 09:29:33 +0100 Subject: [PATCH] ENH: add foamPackDeps, foamPackMake to help transferring between machines --- bin/foamPackDeps | 132 ++++++++++++++++++++++++++++++++++++ bin/foamPackDoxygen | 2 +- bin/foamPackMake | 135 +++++++++++++++++++++++++++++++++++++ bin/foamPackThirdPartyDeps | 1 + bin/foamPackThirdPartyMake | 1 + 5 files changed, 270 insertions(+), 1 deletion(-) create mode 100755 bin/foamPackDeps create mode 100755 bin/foamPackMake create mode 120000 bin/foamPackThirdPartyDeps create mode 120000 bin/foamPackThirdPartyMake diff --git a/bin/foamPackDeps b/bin/foamPackDeps new file mode 100755 index 00000000000..198c3a3b191 --- /dev/null +++ b/bin/foamPackDeps @@ -0,0 +1,132 @@ +#!/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 +# foamPackDeps [OPTION] +# +# Description +# Pack and compress *.dep files from OpenFOAM +# +# Script +# foamPackDeps [OPTION] +# +# Description +# Pack and compress *.dep files from OpenFOAM ThirdParty +# +#------------------------------------------------------------------------------ +toolsDir="${0%/*}/tools" # this script is located in the tools/ parent dir + +case "${0##*/}" in +*ThirdParty*) + # for ThirdParty + codeBase="OpenFOAM ThirdParty" + packDir=ThirdParty-$WM_PROJECT_VERSION + ;; +*) + # regular + codeBase="OpenFOAM ThirdParty" + packDir=$WM_PROJECT-$WM_PROJECT_VERSION + ;; +esac + + +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 + +* Pack and compress *.dep files from $codeBase + +USAGE + exit 1 +} + + +unset 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 + +# check for essential directories +[ -d $packDir ] || { + echo "Error: directory $packDir does not exist" 1>&2 + exit 1 +} + + +#------------------------------------------------------------------------------ +timeStamp=$(date +%Y-%m-%d) +packExt=tgz +packBase=${packDir}.deps_${timeStamp} + +# add optional output directory +[ -d "$outputDir" ] && packBase="$outputDir/$packBase" +packFile=$packBase.$packExt + +# avoid overwriting old pack file +if [ -f $packFile ] +then + echo "Error: $packFile already exists" 1>&2 + exit 1 +fi + +cat <<INFO 1>&2 +------------------------------------------------------------------------------- +Packing *.dep files into $packFile + +INFO + +# Clean up on Ctrl-C +trap 'rm -f $packFile 2>/dev/null' INT + +find -H $packDir -name '*.dep' -type f -print | tar cpzf $packFile -T - + +if [ $? -eq 0 ] +then + echo "Finished packing *.dep files into file $packFile" 1>&2 +else + echo "Error: failure packing *.dep files into $packFile" 1>&2 + rm -f $packFile 2>/dev/null +fi + +#------------------------------------------------------------------------------ diff --git a/bin/foamPackDoxygen b/bin/foamPackDoxygen index c9337e972f4..464a5d523f3 100755 --- a/bin/foamPackDoxygen +++ b/bin/foamPackDoxygen @@ -122,7 +122,7 @@ if [ $? -eq 0 ] then echo "Finished packing doxygen html into file $packFile" 1>&2 else - echo "Error: failure packing doxygen html file $packFile" 1>&2 + echo "Error: failure packing doxygen html into file $packFile" 1>&2 rm -f $packFile 2>/dev/null fi diff --git a/bin/foamPackMake b/bin/foamPackMake new file mode 100755 index 00000000000..a3370867d06 --- /dev/null +++ b/bin/foamPackMake @@ -0,0 +1,135 @@ +#!/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 +# foamPackMake [OPTION] <archOptions> +# +# Description +# Pack and compress OpenFOAM Make/<archOptions> directories +# +# Script +# foamPackThirdPartyMake [OPTION] <archOptions> +# +# Description +# Pack and compress OpenFOAM ThirdParty Make/<archOptions> directories +# +#------------------------------------------------------------------------------ +toolsDir="${0%/*}/tools" # this script is located in the tools/ parent dir + +case "${0##*/}" in +*ThirdParty*) + # for ThirdParty + codeBase="OpenFOAM ThirdParty" + packDir=ThirdParty-$WM_PROJECT_VERSION + ;; +*) + # regular + codeBase="OpenFOAM ThirdParty" + packDir=$WM_PROJECT-$WM_PROJECT_VERSION + ;; +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 $codeBase Make/<archOptions> directories + + The value of 'archOptions' normally corresponds to \$WM_OPTIONS + The current value of \$WM_OPTIONS = $WM_OPTIONS + +USAGE + exit 1 +} + + +unset 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) +packExt=tgz +packBase=${packDir}.Make-${archOptions}_${timeStamp} + +# add optional output directory +[ -d "$outputDir" ] && packBase="$outputDir/$packBase" +packFile=$packBase.$packExt + +# avoid overwriting old pack file +if [ -f $packFile ] +then + echo "Error: $packFile already exists" 1>&2 + exit 1 +fi + +cat <<INFO 1>&2 +------------------------------------------------------------------------------- +Pack and compress Make/$archOptions* directories into $packFile + +INFO + +# Clean up on Ctrl-C +trap 'rm -f $packFile 2>/dev/null' INT + +find -H $packDir -depth -name Make -type d -print | \ + xargs -i find '{}' -depth -name "$archOptions*" -type d -print | \ + tar cpzf $packFile -T - + +if [ $? -eq 0 ] +then + echo "Finished packing Make/$archOptions directories into $packFile" 1>&2 +else + echo "Error: failure packing Make/$archOptions directories into $packFile" 1>&2 + rm -f $packFile 2>/dev/null +fi + +#------------------------------------------------------------------------------ diff --git a/bin/foamPackThirdPartyDeps b/bin/foamPackThirdPartyDeps new file mode 120000 index 00000000000..331c2569c84 --- /dev/null +++ b/bin/foamPackThirdPartyDeps @@ -0,0 +1 @@ +foamPackDeps \ No newline at end of file diff --git a/bin/foamPackThirdPartyMake b/bin/foamPackThirdPartyMake new file mode 120000 index 00000000000..56bc81cf73a --- /dev/null +++ b/bin/foamPackThirdPartyMake @@ -0,0 +1 @@ +foamPackMake \ No newline at end of file -- GitLab