CONFIG: foamPackRelease handling of recursive submodules
This commit is contained in:
parent
432d65475c
commit
2045de8345
@ -6,7 +6,7 @@
|
|||||||
# \\ / A nd | www.openfoam.com
|
# \\ / A nd | www.openfoam.com
|
||||||
# \\/ M anipulation |
|
# \\/ M anipulation |
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# Copyright (C) 2019-2021 OpenCFD Ltd.
|
# Copyright (C) 2019-2023 OpenCFD Ltd.
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# License
|
# License
|
||||||
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
# This file is part of OpenFOAM, distributed under GPL-3.0-or-later.
|
||||||
@ -387,7 +387,7 @@ echo
|
|||||||
# OpenFOAM sources
|
# OpenFOAM sources
|
||||||
if [ "$withSource" != false ]
|
if [ "$withSource" != false ]
|
||||||
then
|
then
|
||||||
echo 'git -c tar.umask=user archive --format=tar ${prefixDir:+--prefix="$prefixDir/"} -o "$outputDir/$tarName.tar" "$head"'
|
echo 'git -c tar.umask=0022 archive --format=tar ${prefixDir:+--prefix="$prefixDir/"} -o "$outputDir/$tarName.tar" "$head"'
|
||||||
|
|
||||||
# Tag build information with underscore to distinguish from "real" build
|
# Tag build information with underscore to distinguish from "real" build
|
||||||
# information when git is available.
|
# information when git is available.
|
||||||
@ -404,6 +404,74 @@ fi
|
|||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# Add in modules
|
# Add in modules
|
||||||
|
|
||||||
|
# Recursive addition of submodule content.
|
||||||
|
# NB: must be called from within the respective parent directory.
|
||||||
|
# Example,
|
||||||
|
#
|
||||||
|
# packModule abc (implied cd)
|
||||||
|
# packModule abc/def
|
||||||
|
# packModule abc/def/hij
|
||||||
|
#
|
||||||
|
packModule()
|
||||||
|
{
|
||||||
|
local parent="$1"
|
||||||
|
|
||||||
|
(
|
||||||
|
if [ -n "$parent" ]
|
||||||
|
then
|
||||||
|
cd "${parent##*/}" 2>/dev/null || exit
|
||||||
|
fi
|
||||||
|
|
||||||
|
git ls-tree -d HEAD | \
|
||||||
|
while read mode gittype sha1 module
|
||||||
|
do
|
||||||
|
[ "$gittype" == commit ] || continue
|
||||||
|
|
||||||
|
case "$module" in
|
||||||
|
(. | ./)
|
||||||
|
echo
|
||||||
|
echo "# ----"
|
||||||
|
echo "# module $parent : not initialized?"
|
||||||
|
echo "# ----"
|
||||||
|
continue
|
||||||
|
;;
|
||||||
|
esac
|
||||||
|
|
||||||
|
# Fully qualified
|
||||||
|
module="$parent${parent:+/}$module"
|
||||||
|
|
||||||
|
echo
|
||||||
|
echo "# module"
|
||||||
|
echo "module='$module'"
|
||||||
|
echo "commit='$sha1'"
|
||||||
|
echo "tmpTarFile='$tarName-${module##*/}.tar'"
|
||||||
|
echo "# ----"
|
||||||
|
echo '('
|
||||||
|
echo ' cd "$module" || exit'
|
||||||
|
echo ' newPrefix="$prefixDir${prefixDir:+/}$module"'
|
||||||
|
echo ' git -c tar.umask=0022 archive --format=tar --prefix="$newPrefix/" -o "$outputDir/$tmpTarFile" "$commit" || exit'
|
||||||
|
# Without {test,tests,validation} directories (potentially large)
|
||||||
|
echo ' tar --delete -f "$outputDir/$tmpTarFile" "$newPrefix/test" "$newPrefix/tests" "$newPrefix/validation" 2>/dev/null'
|
||||||
|
echo ' tar -Af "$outputDir/$tarName.tar" "$outputDir/$tmpTarFile"'
|
||||||
|
echo ' {'
|
||||||
|
echo ' echo'
|
||||||
|
echo ' echo "$module"'
|
||||||
|
echo ' echo commit="$commit"'
|
||||||
|
echo ' echo'
|
||||||
|
echo ' # Without {test,tests,validation} directories'
|
||||||
|
echo ' git ls-tree -r "$commit" | sed -e '"'"'/\t\(test\|\tests\|validation\)\//d'"'"
|
||||||
|
echo ' } >> "$outputDir/$manifest1"'
|
||||||
|
echo ')'
|
||||||
|
# Remove tmp tar file, even if git archive failed (creates zero-sized tar)
|
||||||
|
echo 'rm -f "$outputDir/$tmpTarFile"'
|
||||||
|
|
||||||
|
packModule "$module"
|
||||||
|
done
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
if [ "$withModules" != false ]
|
if [ "$withModules" != false ]
|
||||||
then
|
then
|
||||||
echo
|
echo
|
||||||
@ -415,33 +483,7 @@ then
|
|||||||
echo ' echo head="$head"'
|
echo ' echo head="$head"'
|
||||||
echo '} > "$outputDir/$manifest1"'
|
echo '} > "$outputDir/$manifest1"'
|
||||||
|
|
||||||
git --git-dir="$gitbase/.git" ls-tree "$head" modules/ | \
|
packModule modules
|
||||||
while read mode gittype sha1 module
|
|
||||||
do
|
|
||||||
[ "$gittype" == commit ] || continue
|
|
||||||
|
|
||||||
echo
|
|
||||||
echo "module=\""$module"\""
|
|
||||||
echo "commit=\""$sha1"\""
|
|
||||||
echo "tarModule=\""$tarName-${module##*/}"\""
|
|
||||||
echo
|
|
||||||
echo 'if pushd "$module"; then'
|
|
||||||
echo 'moduleDir="$prefixDir${prefixDir:+/}$module"'
|
|
||||||
echo 'git -c tar.umask=user archive --format=tar --prefix="$moduleDir/" -o "$outputDir/$tarModule.tar" "$commit"'
|
|
||||||
echo '# Without test, validation dirs (potentially large)'
|
|
||||||
echo 'tar --delete -f "$outputDir/$tarModule.tar" "$moduleDir/test" "$moduleDir/validation" 2>/dev/null'
|
|
||||||
echo 'tar -Af "$outputDir/$tarName.tar" "$outputDir/$tarModule.tar"'
|
|
||||||
echo 'rm -f "$outputDir/$tarModule.tar"'
|
|
||||||
echo '{'
|
|
||||||
echo ' echo'
|
|
||||||
echo ' echo "$module"'
|
|
||||||
echo ' echo commit="$commit"'
|
|
||||||
echo ' echo'
|
|
||||||
echo ' # Without test, validation dirs'
|
|
||||||
echo ' git ls-tree -r "$commit" | sed -e '"'"'/\ttest\//d;/\tvalidation\//d'"'"
|
|
||||||
echo '} >> "$outputDir/$manifest1"'
|
|
||||||
echo 'popd; fi'
|
|
||||||
done
|
|
||||||
|
|
||||||
echo
|
echo
|
||||||
echo '{ echo; echo "# End"; } >> "$outputDir/$manifest1"'
|
echo '{ echo; echo "# End"; } >> "$outputDir/$manifest1"'
|
||||||
@ -459,8 +501,9 @@ echo 'rm -f "$buildInfo" "$manifest0" "$manifest1"'
|
|||||||
echo 'popd; fi'
|
echo 'popd; fi'
|
||||||
|
|
||||||
echo
|
echo
|
||||||
|
echo "# -----------------------"
|
||||||
echo "# End of creating archive"
|
echo "# End of creating archive"
|
||||||
echo
|
echo "# -----------------------"
|
||||||
|
|
||||||
#------------------------------------------------------------------------------
|
#------------------------------------------------------------------------------
|
||||||
# Compression
|
# Compression
|
||||||
|
Loading…
Reference in New Issue
Block a user