Clarified purpose of document and some of its content
[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 OSXPackageBuilder
32 #                module.
33 #
34
35 # Use the common script to locate the directory containing Privoxy's source ($SOURCEDIR)
36 . ./common.sh
37
38 # Remove existing 'pkg content' folder if found
39 echo ""
40 echo "Remove existing 'pkg content' folder if found"
41 rm -rf pkg\ content
42
43 # Copy the package skeleton (the unchanging content) to a new folder named 'pkg content'
44 echo ""
45 echo "Copy the package skeleton (the unchanging content) to a new folder named 'pkg content'"
46 echo ""
47 cp -vR pkg\ content\ skeleton pkg\ content
48
49 # Replace the version number placeholders in the uninstallation script
50 echo ""
51 echo "Replace the version number placeholders in the uninstallation script"
52 echo ""
53 VERSION=`perl findversion.pl ../${SOURCE_DIR}/ChangeLog`
54 sed "s/PRIVOXY_VERSION/${VERSION}/g" pkg\ content\ skeleton/Applications/Privoxy/uninstall.command > pkg\ content/Applications/Privoxy/uninstall.command
55
56 # Copy the compiled privoxy binary from the '${SOURCE_DIR}' directory
57 echo ""
58 echo ""
59 echo "Copy the compiled privoxy binary from the '${SOURCE_DIR}' directory"
60 echo ""
61 cp -v ../${SOURCE_DIR}/privoxy pkg\ content/usr/local/sbin
62
63 # Copy the configuration hierarchy from the '${SOURCE_DIR}' directory
64 echo ""
65 echo ""
66 echo "Copy most of the configuration hierarchy from the '${SOURCE_DIR}' directory"
67 echo ""
68 for i in default.action default.filter match-all.action trust user.action user.filter templates; do
69         if [ "$i" = "templates" ]; then
70                 # for the templates subfolder copy all files therein
71                 cp -vR ../${SOURCE_DIR}/$i pkg\ content/usr/local/etc/privoxy/vanilla/$i
72         else
73                 # for all regular files just copy them across
74                 cp -v ../${SOURCE_DIR}/$i pkg\ content/usr/local/etc/privoxy/vanilla/$i
75         fi
76 done
77
78 # Enter the correct values for confdir and logdir into the config file 
79 echo ""
80 echo ""
81 echo "Copy the config file from the '${SOURCE_DIR}' directory, modifying the confdir and logdir in passing"
82 echo ""
83 sed 's/confdir ./confdir \/usr\/local\/etc\/privoxy/g' ../${SOURCE_DIR}/config > pkg\ content/usr/local/etc/privoxy/vanilla/config_temp
84 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
85 rm -f pkg\ content/usr/local/etc/privoxy/vanilla/config_temp
86
87 # Copy the documentation hierarchy from the '${SOURCE_DIR}' directory
88 echo ""
89 echo ""
90 echo "Copy the documentation hierarchy from the '${SOURCE_DIR}' directory"
91 echo ""
92 # copy the required directory hierarchies
93 for i in developer-manual faq images man-page team user-manual; do
94         cp -vR ../${SOURCE_DIR}/doc/webserver/$i pkg\ content/usr/local/share/doc/privoxy/$i
95 done
96 # copy the top-level files
97 for i in announce.txt p_doc.css privoxy-index.html; do
98         cp -v ../${SOURCE_DIR}/doc/webserver/$i pkg\ content/usr/local/share/doc/privoxy/$i
99 done
100 # copy the project's AUTHORS, ChangeLog, LICENSE and README files
101 for i in AUTHORS ChangeLog LICENSE README; do
102         cp -v ../${SOURCE_DIR}/$i pkg\ content/usr/local/share/doc/privoxy/$i
103 done
104
105 # Copy the manpage from the '${SOURCE_DIR}' directory
106 echo ""
107 echo ""
108 echo "Copy the manpage from the '${SOURCE_DIR}' directory"
109 echo ""
110 cp -v ../${SOURCE_DIR}/privoxy.1 pkg\ content/usr/local/share/man/man1
111
112 # Optionally copy the PCRE libraries
113 if [ "$1" == "-pcre" ]; then
114         echo ""
115         echo ""
116         echo "Copy the external PCRE libraries"
117         echo ""
118         mkdir pkg\ content/usr/local/lib
119         cp -v /usr/local/lib/libpcre* pkg\ content/usr/local/lib
120         mkdir pkg\ content/usr/local/lib/pkgconfig
121         cp -v /usr/local/lib/pkgconfig/libpcre* pkg\ content/usr/local/lib/pkgconfig
122 fi
123
124 # Remove CVS administration files
125 echo ""
126 echo ""
127 echo "Remove CVS administration files"
128 echo ""
129 find pkg\ content -name CVS.sandboxinfo -exec rm -rf {} \;
130 find pkg\ content -name CVS -exec rm -rf {} \;
131