Commit a3a2ea78 authored by Mark Olesen's avatar Mark Olesen
Browse files

ENH: update, cleanup foam packing routines

- update packing for FOAM_EXT_LIBBIN and newer FOAM_APPBIN
- pack OpenFOAM source via 'git archive' for consistency with
  the git repository (use -nogit option to revert to manual packing)
- combine foamPackBin + foamPackThirdPartyBin
- add foamPackThirdPartyBinAll (like foamPackBinAll)

- relocate service scripts into bin/tools
- use more standard 'tgz' instead of 'gtgz'
parent 6091cdb0
#!/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
#------------------------------------------------------------------------------
......@@ -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
......
......@@ -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
#------------------------------------------------------------------------------
......@@ -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
#------------------------------------------------------------------------------
#!/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
#------------------------------------------------------------------------------
#!/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