[Fusionforge-commits] r9100 - in trunk/gforge: packaging/cron.d plugins/mediawiki/cronjobs plugins/mediawiki/etc/httpd.d plugins/mediawiki/www

Olaf Lenz olenz at libremir.placard.fr.eu.org
Tue Mar 16 13:35:42 CET 2010


Author: olenz
Date: 2010-03-16 13:35:42 +0100 (Tue, 16 Mar 2010)
New Revision: 9100

Modified:
   trunk/gforge/packaging/cron.d/00phpcron
   trunk/gforge/packaging/cron.d/plugin-mediawiki
   trunk/gforge/plugins/mediawiki/cronjobs/create-wikis.sh
   trunk/gforge/plugins/mediawiki/etc/httpd.d/03mediawiki
   trunk/gforge/plugins/mediawiki/www/LocalSettings.php
Log:
Made mediawiki better configurable for non-standard-directories.

Modified: trunk/gforge/packaging/cron.d/00phpcron
===================================================================
--- trunk/gforge/packaging/cron.d/00phpcron	2010-03-16 12:10:41 UTC (rev 9099)
+++ trunk/gforge/packaging/cron.d/00phpcron	2010-03-16 12:35:42 UTC (rev 9100)
@@ -1,4 +1,5 @@
-FFCRON="/usr/share/gforge/cronjobs"
+FFDIR=/usr/share/gforge
+FFCRON=$FFDIR/cronjobs
 FFUSER=gforge
 
 # You may need to change the pathname to php CLI (command line interface)

Modified: trunk/gforge/packaging/cron.d/plugin-mediawiki
===================================================================
--- trunk/gforge/packaging/cron.d/plugin-mediawiki	2010-03-16 12:10:41 UTC (rev 9099)
+++ trunk/gforge/packaging/cron.d/plugin-mediawiki	2010-03-16 12:35:42 UTC (rev 9100)
@@ -3,4 +3,4 @@
 #
 
 # Create new wikis four times an hour
-*/15 * * * * root [ -x /usr/share/gforge/plugins/mediawiki/cronjobs/create-wikis.sh ] && /usr/share/gforge/plugins/mediawiki/cronjobs/create-wikis.sh
+*/15 * * * * root [ -x $FFDIR/plugins/mediawiki/cronjobs/create-wikis.sh ] && $FFDIR/plugins/mediawiki/cronjobs/create-wikis.sh

Modified: trunk/gforge/plugins/mediawiki/cronjobs/create-wikis.sh
===================================================================
--- trunk/gforge/plugins/mediawiki/cronjobs/create-wikis.sh	2010-03-16 12:10:41 UTC (rev 9099)
+++ trunk/gforge/plugins/mediawiki/cronjobs/create-wikis.sh	2010-03-16 12:35:42 UTC (rev 9100)
@@ -1,16 +1,23 @@
 #! /bin/sh
 
+sys_etc_path="/etc/gforge"
+sys_var_apth="/var/lib/gforge"
+
+# set the data dir for the plugin
+wdprefix=$sys_var_path/plugins/mediawiki/wikidata
+
+# get DB credentials
 tmp3=$(mktemp)
-perl -e'require "/etc/gforge/local.pl"; print "*:*:$sys_dbname:$sys_dbuser:$sys_dbpasswd\n"' > $tmp3
+perl -e'require "'$sys_etc_path'/local.pl"; print "*:*:$sys_dbname:$sys_dbuser:$sys_dbpasswd\n"' > $tmp3
 
-projects=$(echo "SELECT g.unix_group_name from groups g, group_plugin gp, plugins p where g.group_id = gp.group_id and gp.plugin_id = p.plugin_id and p.plugin_name = 'mediawiki' ;" \
+# get all projects that use the mediawiki plugin
+all_projects=$(echo "SELECT g.unix_group_name from groups g, group_plugin gp, plugins p where g.group_id = gp.group_id and gp.plugin_id = p.plugin_id and p.plugin_name = 'mediawiki' ;" \
     | PGPASSFILE=$tmp3 /usr/bin/psql -U gforge gforge \
     | tail -n +3 \
     | grep '^ ')
 
-wdprefix=/var/lib/gforge/plugins/mediawiki/wikidata
-
-for project in $projects ; do
+# create image directory and LocalSettings.php for all projects that don't have it yet
+for project in $all_projects ; do
     if [ ! -d $wdprefix/$project/images ] ; then
 	mkdir -p $wdprefix/$project/images
     fi
@@ -47,13 +54,12 @@
 
 EOF
 
-	filteredprojects="$filteredprojects $project"
+	new_projects="$new_projects $project"
     fi
 done
 
-projects=$filteredprojects
-
-for project in $projects ; do
+# create mediawiki database for all projects that started to use mediawiki
+for project in $new_projects ; do
     schema=$(echo plugin_mediawiki_$project | sed s/-/_/g)
 
     tmp1=$(mktemp)
@@ -99,14 +105,9 @@
 
 done
 
-projects=$(echo "SELECT g.unix_group_name from groups g, group_plugin gp, plugins p where g.group_id = gp.group_id and gp.plugin_id = p.plugin_id and p.plugin_name = 'mediawiki' ;" \
-    | PGPASSFILE=$tmp3 /usr/bin/psql -U gforge gforge \
-    | tail -n +3 \
-    | grep '^ ')
-
 tmp4=$(mktemp)
 # Disable read anonymous if project is private
-for project in $projects ; do
+for project in $all_projects ; do
 	ispublic=$(echo "SELECT is_public from groups where unix_group_name = '${project}' ;" \
 	    | PGPASSFILE=$tmp3 /usr/bin/psql -U gforge gforge \
 			| tail -n +3 \

Modified: trunk/gforge/plugins/mediawiki/etc/httpd.d/03mediawiki
===================================================================
--- trunk/gforge/plugins/mediawiki/etc/httpd.d/03mediawiki	2010-03-16 12:10:41 UTC (rev 9099)
+++ trunk/gforge/plugins/mediawiki/etc/httpd.d/03mediawiki	2010-03-16 12:35:42 UTC (rev 9100)
@@ -1,16 +1,16 @@
 # 03mediawiki begin
-<Directory /var/lib/gforge/plugins/mediawiki>
+<Directory {var_lib_gforge}/plugins/mediawiki>
         Options +FollowSymLinks -Indexes
         AllowOverride All
         order allow,deny
         allow from all
         # Allow mediawiki to connect to gforge
-        Include /etc/gforge/httpd.secrets
-        php_admin_value include_path "/etc/gforge/custom:/etc/gforge:/usr/share/gforge:/usr/share/gforge/www/include:."
+        Include {gforge_etc}/httpd.secrets
+        php_admin_value include_path "{sys_custom_path}:/etc/gforge:{usr_share_gforge}:{usr_share_gforge}/www/include:."
 </Directory>
 
 # some directories must be protected
-<DirectoryMatch /var/lib/gforge/plugins/mediawiki/wikidata/[-a-zA-Z0-9_]*/images>
+<DirectoryMatch {var_lib_gforge}/plugins/mediawiki/wikidata/[-a-zA-Z0-9_]*/images>
         Options -FollowSymLinks
         AllowOverride None
 </DirectoryMatch>

Modified: trunk/gforge/plugins/mediawiki/www/LocalSettings.php
===================================================================
--- trunk/gforge/plugins/mediawiki/www/LocalSettings.php	2010-03-16 12:10:41 UTC (rev 9099)
+++ trunk/gforge/plugins/mediawiki/www/LocalSettings.php	2010-03-16 12:35:42 UTC (rev 9100)
@@ -1,7 +1,15 @@
 <?php
 
+$sys_etc_path = "/etc/gforge";
+$sys_opt_path = "/usr/share/gforge";
+$sys_var_path = "/var/lib/gforge";
+
+define('MW_INSTALL_PATH', "$sys_opt_path/www/plugins/mediawiki/wikisrc");
+
 $fusionforgeproject = 'siteadmin' ;
 $exppath = explode ('/', $_SERVER['PHP_SELF']) ;
+
+# determine $fusionforgeproject
 while (count ($exppath) >= 4) {
         if (($exppath[0] == 'plugins') && ($exppath[1] == 'mediawiki') && ($exppath[2] == 'wiki') && ($exppath[4] == 'index.php')) {
                 $fusionforgeproject = $exppath[3] ;
@@ -11,8 +19,7 @@
         }
 }
 
-define('MW_INSTALL_PATH','/usr/share/gforge/www/plugins/mediawiki');
-$wikidata = "/var/lib/gforge/plugins/mediawiki/wikidata/$fusionforgeproject" ;
+$wikidata = $sys_var_path . "plugins/mediawiki/wikidata/$fusionforgeproject" ;
 
 if( defined( 'MW_INSTALL_PATH' ) ) {
         $IP = MW_INSTALL_PATH;
@@ -26,10 +33,10 @@
 require_once( "$IP/includes/DefaultSettings.php" );
 
 if ( isset( $_SERVER ) && array_key_exists( 'REQUEST_METHOD', $_SERVER ) ) {
-        require_once ('/etc/gforge/local.inc') ;
-        require_once ('/usr/share/gforge/www/env.inc.php') ;
+        require_once ("$sys_etc_path/local.inc") ;
+        require_once ("$sys_opt_path/www/env.inc.php") ;
 } else {
-        require_once ('/etc/gforge/database.inc') ;
+        require_once ("$sys_etc_path/database.inc") ;
 }
 $sys_dbport = 5432;
 
@@ -66,10 +73,7 @@
 
 $wgLanguageCode = "en";
 $wgDefaultSkin = 'fusionforge';
-$wgStyleDirectory = '/usr/share/mediawiki/skins' ;
 
-require ('/etc/gforge/local.inc') ;
-require ('/usr/share/gforge/www/env.inc.php') ;
 $GLOBALS['sys_dbhost'] = $sys_dbhost ;
 $GLOBALS['sys_dbport'] = $sys_dbport ;
 $GLOBALS['sys_dbname'] = $sys_dbname ;
@@ -83,7 +87,7 @@
 $GLOBALS['gfwww'] = $gfwww ;
 $GLOBALS['gfplugins'] = $gfplugins ;
 $GLOBALS['sys_lang'] = $sys_lang ;
-require ($gfwww.'include/pre.php') ;
+require ("$sys_opt_path/www/include/pre.php") ;
 $GLOBALS['sys_urlroot'] = $sys_urlroot;
 $GLOBALS['sys_session_key'] = $sys_session_key;
 $GLOBALS['sys_session_expire'] = $sys_session_expire;




More information about the Fusionforge-commits mailing list