Version references now automatically populated during package build workflow
[OSXPackageBuilder.git] / constructPkgContent.sh
1 #!/bin/sh
2
3 # File        :  constructPkgContent.sh
4 #
5 # Purpose     :  Create the hierarchy of folders and files that will 
6 #                comprise the installation package.
7 #
8 # Copyright   :  Written by and Copyright (C) 2001-2012 the
9 #                Privoxy team. http://www.privoxy.org/
10 #
11 #                This program is free software; you can redistribute it
12 #                and/or modify it under the terms of the GNU General
13 #                Public License as published by the Free Software
14 #                Foundation; either version 2 of the License, or (at
15 #                your option) any later version.
16 #
17 #                This program is distributed in the hope that it will
18 #                be useful, but WITHOUT ANY WARRANTY; without even the
19 #                implied warranty of MERCHANTABILITY or FITNESS FOR A
20 #                PARTICULAR PURPOSE.  See the GNU General Public
21 #                License for more details.
22 #
23 #                The GNU General Public License should be included with
24 #                this file.  If not, you can view it at
25 #                http://www.gnu.org/copyleft/gpl.html
26 #                or write to the Free Software Foundation, Inc.,
27 #                51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
28 #                USA
29 #
30 # Modification : If you modify this file please consider whether your 
31 #                changes ought to be passed back to the macsetup module.
32 #
33
34 # Remove existing 'pkg content' folder if found
35 echo ""
36 echo "Remove existing 'pkg content' folder if found"
37 rm -rf pkg\ content
38
39 # Copy the package skeleton (the unchanging content) to a new folder named 'pkg content'
40 echo ""
41 echo "Copy the package skeleton (the unchanging content) to a new folder named 'pkg content'"
42 echo ""
43 cp -vR pkg\ content\ skeleton pkg\ content
44
45 # Replace the version number placeholders in the uninstallation script
46 echo ""
47 echo "Replace the version number placeholders in the uninstallation script"
48 echo ""
49 VERSION=`perl findversion.pl ../current/ChangeLog`
50 sed "s/PRIVOXY_VERSION/${VERSION}/g" pkg\ content\ skeleton/Applications/Privoxy/uninstall.command > pkg\ content/Applications/Privoxy/uninstall.command
51
52 # Copy the compiled privoxy binary from the 'current' project
53 echo ""
54 echo ""
55 echo "Copy the compiled privoxy binary from the 'current' project"
56 echo ""
57 cp -v ../current/privoxy pkg\ content/usr/local/sbin
58
59 # Copy the configuration hierarchy from the 'current' project
60 echo ""
61 echo ""
62 echo "Copy most of the configuration hierarchy from the 'current' project"
63 echo ""
64 for i in default.action default.filter match-all.action trust user.action user.filter templates; do
65         if [ "$i" = "templates" ]; then
66                 # for the templates subfolder copy all files therein
67                 cp -vR ../current/$i pkg\ content/usr/local/etc/privoxy/vanilla/$i
68         else
69                 # for all regular files just copy them across
70                 cp -v ../current/$i pkg\ content/usr/local/etc/privoxy/vanilla/$i
71         fi
72 done
73
74 # Enter the correct values for confdir and logdir into the config file 
75 echo ""
76 echo ""
77 echo "Copy the config file from the 'current' project, modifying the confdir and logdir in passing"
78 echo ""
79 sed 's/confdir ./confdir \/usr\/local\/etc\/privoxy/g' ../current/config > pkg\ content/usr/local/etc/privoxy/vanilla/config_temp
80 sed 's/logdir ./logdir \/var\/log\/privoxy/g' pkg\ content/usr/local/etc/privoxy/vanilla/config_temp > pkg\ content/usr/local/etc/privoxy/vanilla/config
81 rm -f pkg\ content/usr/local/etc/privoxy/vanilla/config_temp
82
83 # Copy the documentation hierarchy from the 'current' project
84 echo ""
85 echo ""
86 echo "Copy the documentation hierarchy from the 'current' project"
87 echo ""
88 # copy the required directory hierarchies
89 for i in developer-manual faq images man-page team user-manual; do
90         cp -vR ../current/doc/webserver/$i pkg\ content/usr/local/share/doc/privoxy/$i
91 done
92 # copy the top-level files
93 for i in announce.txt p_doc.css privoxy-index.html; do
94         cp -v ../current/doc/webserver/$i pkg\ content/usr/local/share/doc/privoxy/$i
95 done
96 # copy the project's AUTHORS, ChangeLog, LICENSE and README files
97 for i in AUTHORS ChangeLog LICENSE README; do
98         cp -v ../current/$i pkg\ content/usr/local/share/doc/privoxy/$i
99 done
100
101 # Copy the manpage from the 'current' project
102 echo ""
103 echo ""
104 echo "Copy the manpage from the 'current' project"
105 echo ""
106 cp -v ../current/privoxy.1 pkg\ content/usr/local/share/man/man1
107
108 # Remove CVS administration files
109 echo ""
110 echo ""
111 echo "Remove CVS administration files"
112 echo ""
113 find pkg\ content -name CVS.sandboxinfo -exec rm -rf {} \;
114 find pkg\ content -name CVS -exec rm -rf {} \;
115