4 echo "$0: [-interact] [-help] [-debug] [-confdir confdir] [-input conffile] [-output conffile] [-httpdconf gforgehttpdconf] [-httpdsecrets gforgehttpdsecrets] [-localinc gforgelocalinc] [-example|-fhs] [-clean] [-noapache] [-dovhost] [-home homepath] [-group grouppath]"
13 echo "Calculating defaults"
14 # This is used to make a default working gforge.conf
15 DEFAULTsystem_name=Gforge
16 DEFAULTdomain_name=`hostname -f`
17 DEFAULTserver_admin=webmaster@$DEFAULTdomain_name
18 DEFAULTdb_host=`hostname -i`
21 DEFAULTdb_password=$(dd if=/dev/urandom count=256 bs=1 2> /dev/null | md5sum | cut -b1-8)
22 DEFAULTip_address=`hostname -i`
23 DEFAULTcvs_host=cvs.$DEFAULTdomain_name
24 DEFAULTshell_host=shell.$DEFAULTdomain_name
25 DEFAULTusers_host=users.$DEFAULTdomain_name
26 DEFAULTlists_host=lists.$DEFAULTdomain_name
27 DEFAULTdocs_host=gfdocs.$DEFAULTdomain_name
28 DEFAULTjabber_host=jabber.$DEFAULTdomain_name
29 DEFAULTdownload_host=download.$DEFAULTdomain_name
30 DEFAULTupload_host=upload.$DEFAULTdomain_name
31 DEFAULTstatsadmin_groupid=2
32 DEFAULTnewsadmin_groupid=3
33 DEFAULTpeerrating_groupid=4
34 DEFAULTadmin_login=admin
35 DEFAULTadmin_password=$(dd if=/dev/urandom count=256 bs=1 2> /dev/null | md5sum | cut -b1-8)
36 DEFAULTskill_list="Ada;C;C++;HTML;LISP;Perl;PHP;Python;SQL"
37 DEFAULTdefault_trove_cat=18
38 DEFAULTldap_host=localhost
39 DEFAULTldap_base_dn="dc=`echo $DEFAULTdomain_name | sed 's/\./,dc=/g'`"
40 DEFAULTldap_web_add_password=$(dd if=/dev/urandom count=256 bs=1 2> /dev/null | md5sum | cut -b1-8)
42 DEFAULTcronolog_path=`type cronolog | cut -d' ' -f3`
43 DEFAULTsys_path_to_jpgraph=/usr/share/jpgraph/
44 DEFAULTsys_path_to_cvsweb=/usr/lib/gforge/bin/
45 DEFAULTgforge_chroot=$CHROOT
46 DEFAULTgforge_etc=$ETCDIR
47 DEFAULTgroupdir=$GROUPPATH
48 DEFAULThomedir=$HOMEPATH
49 DEFAULTuploaddir=$GFGDIR/var/lib/gforge/download/
50 DEFAULTsys_jabber_pass=$(dd if=/dev/urandom count=256 bs=1 2> /dev/null | md5sum | cut -b1-8)
51 DEFAULTusr_share_gforge=$SHAREDIR
52 DEFAULTvar_lib_gforge=$GFGDIR/var/lib/gforge
53 DEFAULTvar_log_gforge=$GFGDIR/var/log/gforge
54 DEFAULTsys_show_source=0
55 DEFAULTsys_force_login=0
56 DEFAULTsys_session_key=$(dd if=/dev/urandom count=256 bs=1 2> /dev/null | md5sum | cut -b1-32)
57 DEFAULTsys_theme=gforge
58 DEFAULTsys_lang=English
60 DEFAULTsys_use_jabber=0
61 DEFAULTsys_use_auth_ldap=1
62 DEFAULTsys_ldap_auth_host=localhost
63 DEFAULTsys_ldap_auth_port=389
64 DEFAULTsys_ldap_auth_version=3
65 DEFAULTsys_ldap_auth_dn="dc=`echo $DEFAULTdomain_name | sed 's/\./,dc=/g'`"
66 DEFAULTsys_use_cvs=true
67 DEFAULTsys_use_tracker=true
68 DEFAULTsys_use_forum=true
69 DEFAULTsys_use_pm=true
70 DEFAULTsys_use_docman=true
71 DEFAULTsys_use_news=true
72 DEFAULTsys_use_mail=true
73 DEFAULTsys_use_survey=true
74 DEFAULTsys_use_frs=true
75 DEFAULTsys_use_ftp=true
76 DEFAULTsys_use_trove=true
77 DEFAULTsys_use_snippet=true
78 DEFAULTsys_use_ssl=false
79 DEFAULTsys_use_people=true
80 DEFAULTsys_project_reg_restricted=true
81 DEFAULTsys_localization_enable_caching=true
82 DEFAULTsys_localization_cache_path=$GFGDIR/var/cache/gforge/
83 DEFAULTsys_localization_enable_timestamp_checking=true
84 DEFAULTsys_localinc=$ETCDIR/local.inc
85 DEFAULTsys_jabber_pass=$(dd if=/dev/urandom count=256 bs=1 2> /dev/null | md5sum | cut -b1-8)
88 #usr_lib_gforge=$GFGDIR
95 # This create a default conf file in $1
96 tmpfile=$1.$$computedefault
97 echo "cat >$1<<-EOF" > $tmpfile
98 cat $0 | grep "^ DEFAULT" | sed 's/ DEFAULT\(.[^=]*\)=.*/\1=\${DEFAULT\1}/' >> $tmpfile
99 echo 'EOF' >> $tmpfile
105 cat $1 | sed 's/\(.[^=]*\)=\(.*\)/DEFAULT\1="\2"/' > $1.$$readdefault
107 rm -f $1.$$readdefault
114 writedefault $CONFFILEIN.new
116 if [ -f $CONFFILEIN ]
118 echo "Reading defaults from $CONFFILEIN"
119 readdefault $CONFFILEIN
121 readdefault $CONFFILEIN.new
124 if [ "$interact" == true ]
126 echo "Enter values or type enter for defaults:"
128 # This ask for change of default
130 cat $0 | grep "^ DEFAULT" | sed 's/ DEFAULT\(.[^=]*\)=.*/getval \1 "\${DEFAULT\1}"/' > $tmpfile
132 cat $0 | grep "^ DEFAULT" | sed 's/ DEFAULT\(.[^=]*\)=.*/\1="\${DEFAULT\1}"/' > $tmpfile
137 echo "Creating $CONFFILEOUT"
138 [ ! -d `dirname $CONFFILEOUT` ] && (mkdir -p `dirname $CONFFILEOUT` || (echo "Could not create `dirname $CONFFILEOUT`" && exit 1))
139 writedefault $CONFFILEOUT.new
140 mv $CONFFILEOUT.new $CONFFILEOUT
143 # Remove trailing space
144 cat $CONFFILEIN | sed 's/ *$//' > $CONFFILEIN.new
145 mv $CONFFILEIN.new $CONFFILEIN
148 if [ "$dovhost" == true ]
150 VHOST=$ETCDIR/httpd.d/55vhost
152 for i in $ETCDIR/httpd.d/[0-4][0-9]* $VHOST $ETCDIR/httpd.d/[6-9][0-9]* $ETCDIR/httpd.d/httpd.secrets
154 $BINDIR/fill-in-the-blanks.pl $i $ETCDIR/`basename $i`.gforge-new $CONFFILEOUT
157 echo "Creating $HTTPDCONF"
158 ls $ETCDIR/[0-9][0-9]*.gforge-new | sort | xargs cat > $HTTPDCONF
159 rm $ETCDIR/[0-9][0-9]*.gforge-new
160 echo "Creating $HTTPDSECRETS"
161 cat $ETCDIR/httpd.secrets.gforge-new > $HTTPDSECRETS
162 rm $ETCDIR/httpd.secrets.gforge-new
164 echo "Creating $LOCALINC"
165 for i in $ETCDIR/local.d/01* $ETCDIR/local.d/10database.$database $ETCDIR/local.d/[2-9]*
167 $BINDIR/fill-in-the-blanks.pl $i $ETCDIR/`basename $i` $CONFFILEOUT
169 ls $ETCDIR/01* $ETCDIR/10database.$database $ETCDIR/[2-9]* | sort | xargs cat > $LOCALINC
170 rm $ETCDIR/01* $ETCDIR/10database.$database $ETCDIR/[2-9]*
174 APACHECONF=/etc/apache/httpd.conf
175 GFORGE_ETC_SEARCH=$HTTPDCONF
176 export GFORGE_ETC_SEARCH
177 if [ -f $APACHECONF ] ; then
178 if [ ! -f /etc/apache/conf.d/gforge.httpd.conf ] ; then
179 if ! grep -q "^Include $GFORGE_ETC_SEARCH" $APACHECONF ; then
180 $BINDIR/install-apache.sh setup
182 echo "Found Include $GFORGE_ETC_SEARCH in $APACHECONF"
185 echo "Found /etc/apache/conf.d/gforge.httpd.conf"
197 GROUPPATH=/home/groups
199 CONFFILEIN=$ETCDIR/gforge.conf
200 CONFFILEOUT=$ETCDIR/gforge.conf
201 LOCALINC=$ETCDIR/local.inc
202 HTTPDCONF=$ETCDIR/httpd.conf
203 HTTPDSECRETS=$ETCDIR/httpd.secrets
204 export ETCDIR BINDIR GFGDIR CONFFILEIN CONFFILEOUT LOCALINC HTTPDCONF HTTPDSECRETS DOAPACHE
242 CONFFILEIN=$1/gforge.conf
243 CONFFILEOUT=$1/gforge.conf
244 LOCALINC=$1/local.inc
245 HTTPDCONF=$1/httpd.conf
246 HTTPDSECRETS=$1/httpd.secrets
247 echo Using $1 as config directory
252 BINDIR=/usr/lib/gforge/bin
253 CGIDIR=/usr/lib/gforge/cgi-bin
256 GROUPPATH=/home/groups
257 CHROOT=/var/lib/gforge/chroot
258 SHAREDIR=/usr/share/gforge
259 CONFFILEIN=/etc/gforge/gforge.conf
260 CONFFILEOUT=/etc/gforge/gforge.conf
261 LOCALINC=/etc/gforge/local.inc
262 HTTPDCONF=/etc/gforge/httpd.conf
263 HTTPDSECRETS=/etc/gforge/httpd.secrets
276 CONFFILEIN=$ETCDIR/gforge.conf.example
277 CONFFILEOUT=$ETCDIR/gforge.conf.example
278 LOCALINC=$ETCDIR/local.inc.example
279 HTTPDCONF=$ETCDIR/httpd.conf.example
280 HTTPDSECRETS=$ETCDIR/httpd.secrets.example
293 [ -f $CONFFILEIN ] && echo Removing $CONFFILEIN && rm -f $CONFFILEIN
294 [ -f $CONFFILEOUT ] && echo Removing $CONFFILEOUT && rm -f $CONFFILEOUT
295 [ -f $LOCALINC ] && echo Removing $LOCALINC && rm -f $LOCALINC
296 [ -f $HTTPDCONF ] && echo Removing $HTTPDCONF && rm -f $HTTPDCONF
297 [ -f $HTTPDSECRETS ] && echo Removing $HTTPDSECRETS && rm -f $HTTPDSECRETS
312 [ "$noapache" != true ] && doapache