Merge branch 'master' of ssh://git.code.sf.net/p/foam-extend/foam-extend-3.2
[foam-extend-3.2.git] / bin / foamPack
blob3a04fe6937f66d9ba8948918b4d4e531dbe7889b
1 #!/bin/sh
2 #------------------------------------------------------------------------------
3 # ========= |
4 # \\ / F ield | foam-extend: Open Source CFD
5 # \\ / O peration |
6 # \\ / A nd | For copyright notice see file Copyright
7 # \\/ M anipulation |
8 #------------------------------------------------------------------------------
9 # License
10 # This file is part of foam-extend.
12 # foam-extend is free software: you can redistribute it and/or modify it
13 # under the terms of the GNU General Public License as published by the
14 # Free Software Foundation, either version 3 of the License, or (at your
15 # option) any later version.
17 # foam-extend is distributed in the hope that it will be useful, but
18 # WITHOUT ANY WARRANTY; without even the implied warranty of
19 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
20 # General Public License for more details.
22 # You should have received a copy of the GNU General Public License
23 # along with foam-extend. If not, see <http://www.gnu.org/licenses/>.
25 # Script
26 # foamPack [outputDir]
28 # Description
29 # Packs and compresses the foam directory for release
31 #------------------------------------------------------------------------------
32 tmpFile=${TMPDIR:-/tmp}/foamPackFiles.$$
34 timeStamp=$(date +%Y-%m-%d)
35 packDir=$WM_PROJECT-$WM_PROJECT_VERSION
36 packFile=${packDir}_${timeStamp}.tgz
38 if [ ! -d $packDir ]
39 then
40 echo "Error: directory $packDir does not exist" 1>&2
41 exit 1
44 # add optional output directory
45 if [ -d "$1" ]
46 then
47 packFile="$1/$packFile"
50 if [ -f $packFile ]
51 then
52 echo "Error: $packFile already exists" 1>&2
53 exit 1
56 # Create time stamp file
57 # ~~~~~~~~~~~~~~~~~~~~~~
59 echo $timeStamp 2>/dev/null > $packDir/.timeStamp
61 # Clean up on termination and on Ctrl-C
62 trap 'rm -f $tmpFile 2>/dev/null; exit 0' EXIT TERM INT
65 # Pack and compress the packFile using GNU tar
66 # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
68 echo
69 echo "Packing foam version $packDir into $packFile"
70 echo
71 echo "finding and packing"
73 find -H $packDir \
74 ! -type d -type f \
75 ! -name "*~" \
76 -a ! -name ".*~" \
77 -a ! -name "*.orig" \
78 -a ! -name "*.dep" \
79 -a ! -name "*.o" \
80 -a ! -name "*.so" \
81 -a ! -name "*.a" \
82 -a ! -name "core" \
83 -a ! -name "core.[1-9]*" \
84 -a ! -name "pvml.[1-9]*" \
85 -a ! -name "log[0-9]*" \
86 -a ! -name "so_locations" \
87 | sed \
88 -e "\@$packDir/.git/@d" \
89 -e "\@.svn/@d" \
90 -e "\@$packDir/lib/@d" \
91 -e '\@/\.git/@d' \
92 -e '\@applications/bin/@d' \
93 -e '\@wmake/bin/@d' \
94 -e '\@/t/@d' \
95 -e '\@Make[.A-Za-z]*/[^/]*/@d' \
96 -e '\@doc/[Dd]oxygen/html@d' \
97 -e '\@doc/[Dd]oxygen/latex@d' \
98 -e '\@doc/[Dd]oxygen/man@d' \
99 -e '\@/lnInclude@d' \
100 -e '\@/ii_files@d' \
101 | tee $tmpFile
103 tar czpf $packFile --files-from $tmpFile
105 if [ $? -eq 0 ]
106 then
107 echo "Finished packing and compressing $packDir into file $packFile"
108 else
109 echo "Error: failure packing $packDir into file $packFile" 1>&2
110 rm -f $packFile 2>/dev/null
113 #------------------------------------------------------------------------------