[evolvis-commits] r13809: Added a script and cronjob for automated wiki creation

mirabilos at evolvis.org mirabilos at evolvis.org
Mon Feb 28 02:59:50 CET 2011


Author: mirabilos
Date: 2011-02-28 02:59:50 +0100 (Mon, 28 Feb 2011)
New Revision: 13809

Added:
   trunk/gforge_base/evolvisforge-5.1/gforge/packaging/cron.d/plugin-mediawiki
   trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/bin/drop-wiki.sh
   trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/cronjobs/
   trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/cronjobs/create-wikis.sh
Removed:
   trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/bin/db-delete.pl
   trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/bin/db-upgrade.pl
Modified:
   trunk/gforge_base/evolvisforge-5.1/gforge/debian/dsf-in/plugin-mediawiki.postinst
   trunk/gforge_base/evolvisforge-5.1/gforge/debian/dsf-in/plugin-mediawiki.prerm
   trunk/gforge_base/evolvisforge-5.1/gforge/packaging/dirs/plugin-mediawiki
   trunk/gforge_base/evolvisforge-5.1/gforge/packaging/install/plugin-mediawiki
   trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/common/MediaWikiPlugin.class.php
   trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/www/frame.php
Log:
Added a script and cronjob for automated wiki creation

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/debian/dsf-in/plugin-mediawiki.postinst
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/debian/dsf-in/plugin-mediawiki.postinst	2011-02-28 01:59:47 UTC (rev 13808)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/debian/dsf-in/plugin-mediawiki.postinst	2011-02-28 01:59:50 UTC (rev 13809)
@@ -25,7 +25,6 @@
 
 case "$1" in
     configure)
-	# /usr/share/@PACKAGE@/plugins/mediawiki/bin/db-upgrade.pl
 	/usr/share/@PACKAGE@/bin/register-plugin mediawiki "Mediawiki"
 	@PACKAGE at -config
 	for flavour in apache apache-perl apache-ssl apache2 ; do

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/debian/dsf-in/plugin-mediawiki.prerm
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/debian/dsf-in/plugin-mediawiki.prerm	2011-02-28 01:59:47 UTC (rev 13808)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/debian/dsf-in/plugin-mediawiki.prerm	2011-02-28 01:59:50 UTC (rev 13809)
@@ -21,7 +21,6 @@
     remove|deconfigure)
 	/usr/share/@PACKAGE@/bin/unregister-plugin mediawiki
 	invoke-rc.d apache reload
-	# /usr/share/@PACKAGE@/plugins/mediawiki/bin/db-delete.pl
         ;;
     upgrade|failed-upgrade)
         ;;

Added: trunk/gforge_base/evolvisforge-5.1/gforge/packaging/cron.d/plugin-mediawiki
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/packaging/cron.d/plugin-mediawiki	                        (rev 0)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/packaging/cron.d/plugin-mediawiki	2011-02-28 01:59:50 UTC (rev 13809)
@@ -0,0 +1,6 @@
+#
+# Regular cron jobs for plugin-mediawiki
+#
+
+# 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

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/packaging/dirs/plugin-mediawiki
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/packaging/dirs/plugin-mediawiki	2011-02-28 01:59:47 UTC (rev 13808)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/packaging/dirs/plugin-mediawiki	2011-02-28 01:59:50 UTC (rev 13809)
@@ -1,6 +1,8 @@
 etc/gforge/plugins/mediawiki
 etc/mediawiki-extensions/extensions-available
+usr/share/gforge/plugins/mediawiki/bin
 usr/share/gforge/plugins/mediawiki/common
+usr/share/gforge/plugins/mediawiki/cronjobs
 usr/share/gforge/www/plugins/mediawiki
 usr/share/gforge/etc/httpd.d
 usr/share/mediawiki/skins

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/packaging/install/plugin-mediawiki
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/packaging/install/plugin-mediawiki	2011-02-28 01:59:47 UTC (rev 13808)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/packaging/install/plugin-mediawiki	2011-02-28 01:59:50 UTC (rev 13809)
@@ -1,4 +1,6 @@
+plugins/mediawiki/bin/*            usr/share/gforge/plugins/mediawiki/bin/
 plugins/mediawiki/common/*         usr/share/gforge/plugins/mediawiki/common/
+plugins/mediawiki/cronjobs/*       usr/share/gforge/plugins/mediawiki/cronjobs/
 plugins/mediawiki/www/*            usr/share/gforge/www/plugins/mediawiki/
 plugins/mediawiki/mediawiki-skin/* usr/share/mediawiki/skins/
 plugins/mediawiki/etc/httpd.d/*    usr/share/gforge/etc/httpd.d/

Deleted: trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/bin/db-delete.pl
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/bin/db-delete.pl	2011-02-28 01:59:47 UTC (rev 13808)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/bin/db-delete.pl	2011-02-28 01:59:50 UTC (rev 13809)
@@ -1,187 +0,0 @@
-#!/usr/bin/perl -w
-#
-# Debian-specific script to delete plugin-specific tables
-# Roland Mas <lolando at debian.org>
-
-use strict ;
-use diagnostics ;
-
-use DBI ;
-use MIME::Base64 ;
-use HTML::Entities ;
-
-use vars qw/$dbh @reqlist $query/ ;
-use vars qw/$sys_default_domain $sys_cvs_host $sys_download_host
-    $sys_shell_host $sys_users_host $sys_docs_host $sys_lists_host
-    $sys_dns1_host $sys_dns2_host $FTPINCOMING_DIR $FTPFILES_DIR
-    $sys_urlroot $sf_cache_dir $sys_name $sys_themeroot
-    $sys_news_group $sys_dbhost $sys_dbname $sys_dbuser $sys_dbpasswd
-    $sys_ldap_base_dn $sys_ldap_host $admin_login $admin_password
-    $server_admin $domain_name $newsadmin_groupid $statsadmin_groupid
-    $skill_list/ ;
-use vars qw/$pluginname/ ;
-
-sub is_lesser ( $$ ) ;
-sub is_greater ( $$ ) ;
-sub debug ( $ ) ;
-sub parse_sql_file ( $ ) ;
-
-require ("/usr/share/gforge/lib/include.pl") ; # Include a few predefined functions 
-require ("/usr/share/gforge/lib/sqlparser.pm") ; # Our magic SQL parser
-
-debug "You'll see some debugging info during this installation." ;
-debug "Do not worry unless told otherwise." ;
-
-&db_connect ;
-
-# debug "Connected to the database OK." ;
-
-$pluginname = "mediawiki" ;
-
-$dbh->{AutoCommit} = 0;
-$dbh->{RaiseError} = 1;
-eval {
-    my ($sth, @array, $version, $action, $path, $target, $rname) ;
-
-    my $pattern = "plugin_" . $pluginname . '_%' ;
-
-    $query = "SELECT relname FROM pg_class WHERE relname LIKE '$pattern' AND relkind='v'" ;
-    $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    while (@array = $sth->fetchrow_array ()) {
-	$rname = $array [0] ;
-	&drop_view_if_exists ($rname) ;
-    }
-    $sth->finish () ;
-
-    $query = "SELECT relname FROM pg_class WHERE relname LIKE '$pattern' AND relkind='r'" ;
-    $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    while (@array = $sth->fetchrow_array ()) {
-	$rname = $array [0] ;
-	&drop_table_if_exists ($rname) ;
-    }
-    $sth->finish () ;
-
-    $query = "SELECT relname FROM pg_class WHERE relname LIKE '$pattern' AND relkind='i'" ;
-    $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    while (@array = $sth->fetchrow_array ()) {
-	$rname = $array [0] ;
-	&drop_index_if_exists ($rname) ;
-    }
-    $sth->finish () ;
-
-    $query = "SELECT relname FROM pg_class WHERE relname LIKE '$pattern' AND relkind='s'" ;
-    $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    while (@array = $sth->fetchrow_array ()) {
-	$rname = $array [0] ;
-	&drop_sequence_if_exists ($rname) ;
-    }
-    $sth->finish () ;
-
-    $dbh->commit ();
-
-
-    debug "It seems your database deletion went well and smoothly.  That's cool." ;
-    debug "Please enjoy using Debian GForge." ;
-
-    # There should be a commit at the end of every block above.
-    # If there is not, then it might be symptomatic of a problem.
-    # For safety, we roll back.
-    $dbh->rollback ();
-};
-
-if ($@) {
-    warn "Transaction aborted because $@" ;
-    debug "Transaction aborted because $@" ;
-    debug "Last SQL query was:\n$query\n(end of query)" ;
-    $dbh->rollback ;
-    debug "Please report this bug on the Debian bug-tracking system." ;
-    debug "Please include the previous messages as well to help debugging." ;
-    debug "You should not worry too much about this," ;
-    debug "your DB is still in a consistent state and should be usable." ;
-    exit 1 ;
-}
-
-$dbh->rollback ;
-$dbh->disconnect ;
-
-sub debug ( $ ) {
-    my $v = shift ;
-    chomp $v ;
-    print STDERR "$v\n" ;
-}
-
-sub drop_table_if_exists ( $ ) {
-    my $tname = shift or die  "Not enough arguments" ;
-    $query = "SELECT count(*) FROM pg_class WHERE relname='$tname' AND relkind='r'" ;
-    my $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    my @array = $sth->fetchrow_array () ;
-    $sth->finish () ;
-
-    if ($array [0] != 0) {
-	# debug "Dropping table $tname" ;
-	$query = "DROP TABLE $tname" ;
-	# debug $query ;
-	$sth = $dbh->prepare ($query) ;
-	$sth->execute () ;
-	$sth->finish () ;
-    }
-}
-
-sub drop_sequence_if_exists ( $ ) {
-    my $sname = shift or die  "Not enough arguments" ;
-    $query = "SELECT count(*) FROM pg_class WHERE relname='$sname' AND relkind='S'" ;
-    my $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    my @array = $sth->fetchrow_array () ;
-    $sth->finish () ;
-
-    if ($array [0] != 0) {
-	# debug "Dropping sequence $sname" ;
-	$query = "DROP SEQUENCE $sname" ;
-	# debug $query ;
-	$sth = $dbh->prepare ($query) ;
-	$sth->execute () ;
-	$sth->finish () ;
-    }
-}
-
-sub drop_index_if_exists ( $ ) {
-    my $iname = shift or die  "Not enough arguments" ;
-    $query = "SELECT count(*) FROM pg_class WHERE relname='$iname' AND relkind='i'" ;
-    my $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    my @array = $sth->fetchrow_array () ;
-    $sth->finish () ;
-
-    if ($array [0] != 0) {
-	# debug "Dropping index $iname" ;
-	$query = "DROP INDEX $iname" ;
-	# debug $query ;
-	$sth = $dbh->prepare ($query) ;
-	$sth->execute () ;
-	$sth->finish () ;
-    }
-}
-
-sub drop_view_if_exists ( $ ) {
-    my $iname = shift or die  "Not enough arguments" ;
-    $query = "SELECT count(*) FROM pg_class WHERE relname='$iname' AND relkind='v'" ;
-    my $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    my @array = $sth->fetchrow_array () ;
-    $sth->finish () ;
-
-    if ($array [0] != 0) {
-	# debug "Dropping view $iname" ;
-	$query = "DROP VIEW $iname" ;
-	# debug $query ;
-	$sth = $dbh->prepare ($query) ;
-	$sth->execute () ;
-	$sth->finish () ;
-    }
-}

Deleted: trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/bin/db-upgrade.pl
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/bin/db-upgrade.pl	2011-02-28 01:59:47 UTC (rev 13808)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/bin/db-upgrade.pl	2011-02-28 01:59:50 UTC (rev 13809)
@@ -1,276 +0,0 @@
-#!/usr/bin/perl -w
-#
-# Debian-specific script to upgrade the database between releases
-# Roland Mas <lolando at debian.org>
-#
-# Adapted for mediawiki
-
-use strict ;
-use diagnostics ;
-
-use DBI ;
-use MIME::Base64 ;
-use HTML::Entities ;
-
-use vars qw/$dbh @reqlist $query/ ;
-use vars qw/$sys_default_domain $sys_cvs_host $sys_download_host
-    $sys_shell_host $sys_users_host $sys_docs_host $sys_lists_host
-    $sys_dns1_host $sys_dns2_host $FTPINCOMING_DIR $FTPFILES_DIR
-    $sys_urlroot $sf_cache_dir $sys_name $sys_themeroot
-    $sys_news_group $sys_dbhost $sys_dbname $sys_dbuser $sys_dbpasswd
-    $sys_ldap_base_dn $sys_ldap_host $admin_login $admin_password
-    $server_admin $domain_name $newsadmin_groupid $statsadmin_groupid
-    $skill_list/ ;
-use vars qw/$pluginname/ ;
-
-sub is_lesser ( $$ ) ;
-sub is_greater ( $$ ) ;
-sub debug ( $ ) ;
-sub parse_sql_file ( $ ) ;
-
-require ("/usr/share/gforge/lib/include.pl") ; # Include a few predefined functions 
-require ("/usr/share/gforge/lib/sqlparser.pm") ; # Our magic SQL parser
-
-debug "You'll see some debugging info during this installation." ;
-debug "Do not worry unless told otherwise." ;
-
-&db_connect ;
-
-# debug "Connected to the database OK." ;
-
-$pluginname = "mediawiki" ;
-
-$dbh->{AutoCommit} = 0;
-$dbh->{RaiseError} = 1;
-eval {
-    my ($sth, @array, $version, $path, $target) ;
-
-    &create_metadata_table ("0") ;
-    
-    $version = &get_db_version ;
-    $target = "0.1" ;
-    if (is_lesser $version, $target) {
-	my @filelist = ( "/usr/share/gforge/plugins/$pluginname/lib/$pluginname-init.sql" ) ;
-	
-	foreach my $file (@filelist) {
-	    debug "Processing $file" ;
-	    @reqlist = @{ &parse_sql_file ($file) } ;
-	    
-	    foreach my $s (@reqlist) {
-		$query = $s ;
-		# debug $query ;
-		$sth = $dbh->prepare ($query) ;
-		$sth->execute () ;
-		$sth->finish () ;
-	    }
-	}
-	@reqlist = () ;
-	
-	&update_db_version ($target) ;
-	debug "Committing." ;
-	$dbh->commit () ;
-    }
-    
-    debug "It seems your database install/upgrade went well and smoothly.  That's cool." ;
-    debug "Please enjoy using Debian GForge." ;
-
-    # There should be a commit at the end of every block above.
-    # If there is not, then it might be symptomatic of a problem.
-    # For safety, we roll back.
-    $dbh->rollback ();
-};
-
-if ($@) {
-    warn "Transaction aborted because $@" ;
-    debug "Transaction aborted because $@" ;
-    debug "Last SQL query was:\n$query\n(end of query)" ;
-    $dbh->rollback ;
-    debug "Please report this bug on the Debian bug-tracking system." ;
-    debug "Please include the previous messages as well to help debugging." ;
-    debug "You should not worry too much about this," ;
-    debug "your DB is still in a consistent state and should be usable." ;
-    exit 1 ;
-}
-
-$dbh->rollback ;
-$dbh->disconnect ;
-
-sub is_lesser ( $$ ) {
-    my $v1 = shift || 0 ;
-    my $v2 = shift || 0 ;
-
-    my $rc = system "dpkg --compare-versions $v1 lt $v2" ;
-
-    return (! $rc) ;
-}
-
-sub is_greater ( $$ ) {
-    my $v1 = shift || 0 ;
-    my $v2 = shift || 0 ;
-
-    my $rc = system "dpkg --compare-versions $v1 gt $v2" ;
-
-    return (! $rc) ;
-}
-
-sub debug ( $ ) {
-    my $v = shift ;
-    chomp $v ;
-    print STDERR "$v\n" ;
-}
-
-sub create_metadata_table ( $ ) {
-    my $v = shift || "0" ;
-    my $tablename = "plugin_" .$pluginname . "_meta_data" ;
-    # Do we have the metadata table?
-
-    $query = "SELECT count(*) FROM pg_class WHERE relname = '$tablename' and relkind = 'r'";
-    # debug $query ;
-    my $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    my @array = $sth->fetchrow_array () ;
-    $sth->finish () ;
-
-    # Let's create this table if we have it not
-
-    if ($array [0] == 0) {
-	debug "Creating $tablename table." ;
-	$query = "CREATE TABLE $tablename (key varchar primary key, value text not null)" ;
-	# debug $query ;
-	$sth = $dbh->prepare ($query) ;
-	$sth->execute () ;
-	$sth->finish () ;
-    }
-
-    $query = "SELECT count(*) FROM $tablename WHERE key = 'db-version'";
-    # debug $query ;
-    $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    @array = $sth->fetchrow_array () ;
-    $sth->finish () ;
-
-    # Empty table?  We'll have to fill it up a bit
-
-    if ($array [0] == 0) {
-	debug "Inserting first data into $tablename table." ;
-	$query = "INSERT INTO $tablename (key, value) VALUES ('db-version', '$v')" ;
-	# debug $query ;
-	$sth = $dbh->prepare ($query) ;
-	$sth->execute () ;
-	$sth->finish () ;
-    }
-}
-
-sub update_db_version ( $ ) {
-    my $v = shift or die "Not enough arguments" ;
-    my $tablename = "plugin_" .$pluginname . "_meta_data" ;
-
-    debug "Updating $tablename table." ;
-    $query = "UPDATE $tablename SET value = '$v' WHERE key = 'db-version'" ;
-    # debug $query ;
-    my $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    $sth->finish () ;
-}
-
-sub get_db_version () {
-    my $tablename = "plugin_" .$pluginname . "_meta_data" ;
-
-    $query = "SELECT value FROM $tablename WHERE key = 'db-version'" ;
-    # debug $query ;
-    my $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    my @array = $sth->fetchrow_array () ;
-    $sth->finish () ;
-
-    my $version = $array [0] ;
-
-    return $version ;
-}
-
-sub drop_table_if_exists ( $ ) {
-    my $tname = shift or die  "Not enough arguments" ;
-    $query = "SELECT count(*) FROM pg_class WHERE relname='$tname' AND relkind='r'" ;
-    my $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    my @array = $sth->fetchrow_array () ;
-    $sth->finish () ;
-
-    if ($array [0] != 0) {
-	# debug "Dropping table $tname" ;
-	$query = "DROP TABLE $tname" ;
-	# debug $query ;
-	$sth = $dbh->prepare ($query) ;
-	$sth->execute () ;
-	$sth->finish () ;
-    }
-}
-
-sub drop_sequence_if_exists ( $ ) {
-    my $sname = shift or die  "Not enough arguments" ;
-    $query = "SELECT count(*) FROM pg_class WHERE relname='$sname' AND relkind='S'" ;
-    my $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    my @array = $sth->fetchrow_array () ;
-    $sth->finish () ;
-
-    if ($array [0] != 0) {
-	# debug "Dropping sequence $sname" ;
-	$query = "DROP SEQUENCE $sname" ;
-	# debug $query ;
-	$sth = $dbh->prepare ($query) ;
-	$sth->execute () ;
-	$sth->finish () ;
-    }
-}
-
-sub drop_index_if_exists ( $ ) {
-    my $iname = shift or die  "Not enough arguments" ;
-    $query = "SELECT count(*) FROM pg_class WHERE relname='$iname' AND relkind='i'" ;
-    my $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    my @array = $sth->fetchrow_array () ;
-    $sth->finish () ;
-
-    if ($array [0] != 0) {
-	# debug "Dropping index $iname" ;
-	$query = "DROP INDEX $iname" ;
-	# debug $query ;
-	$sth = $dbh->prepare ($query) ;
-	$sth->execute () ;
-	$sth->finish () ;
-    }
-}
-
-sub drop_view_if_exists ( $ ) {
-    my $iname = shift or die  "Not enough arguments" ;
-    $query = "SELECT count(*) FROM pg_class WHERE relname='$iname' AND relkind='v'" ;
-    my $sth = $dbh->prepare ($query) ;
-    $sth->execute () ;
-    my @array = $sth->fetchrow_array () ;
-    $sth->finish () ;
-
-    if ($array [0] != 0) {
-	# debug "Dropping view $iname" ;
-	$query = "DROP VIEW $iname" ;
-	# debug $query ;
-	$sth = $dbh->prepare ($query) ;
-	$sth->execute () ;
-	$sth->finish () ;
-    }
-}
-
-sub bump_sequence_to ( $$ ) {
-    my ($sth, @array, $seqname, $targetvalue) ;
-
-    $seqname = shift ;
-    $targetvalue = shift ;
-
-    do {
-	$query = "select nextval ('$seqname')" ;
-	$sth = $dbh->prepare ($query) ;
-	$sth->execute () ;
-	@array = $sth->fetchrow_array () ;
-	$sth->finish () ;
-    } until $array[0] >= $targetvalue ;
-}

Added: trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/bin/drop-wiki.sh
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/bin/drop-wiki.sh	                        (rev 0)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/bin/drop-wiki.sh	2011-02-28 01:59:50 UTC (rev 13809)
@@ -0,0 +1,18 @@
+#! /bin/sh
+
+# Usage: drop-wiki.sh <unix-name>
+
+project=$1
+
+wdprefix=/var/lib/gforge/plugins/mediawiki/wikidata
+
+# Minimal sanitisation of project name
+project=$(echo $project | sed s/[^-a-zA-Z0-9_]//g)
+if [ -d $wdprefix/$project ] ; then
+    rm -r $wdprefix/$project
+fi
+
+schema=$(echo plugin_mediawiki_$project | sed s/-/_/g)
+su -s /bin/sh postgres -c "/usr/bin/psql gforge" <<-EOF
+DROP SCHEMA $schema CASCADE;
+EOF


Property changes on: trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/bin/drop-wiki.sh
___________________________________________________________________
Added: svn:executable
   + *

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/common/MediaWikiPlugin.class.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/common/MediaWikiPlugin.class.php	2011-02-28 01:59:47 UTC (rev 13808)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/common/MediaWikiPlugin.class.php	2011-02-28 01:59:50 UTC (rev 13809)
@@ -80,17 +80,6 @@
 			$use_mediawikiplugin = getStringFromRequest('use_mediawikiplugin');
 			if ( $use_mediawikiplugin == 1 ) {
 				$group->setPluginUse ( $this->name );
-				
-				db_begin () ;
-				$schemaname = "plugin_mediawiki_$fusionforgeproject" ;
-				$schemaname = str_replace ('-', '_', $schemaname) ;
-
-				$res = db_query_params ('CREATE SCHEMA $1',
-							array ($schemaname)) ;
-
-				db_commit () ;
-
-
 			} else {
 				$group->setPluginUse ( $this->name, false );
 			}

Added: trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/cronjobs/create-wikis.sh
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/cronjobs/create-wikis.sh	                        (rev 0)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/cronjobs/create-wikis.sh	2011-02-28 01:59:50 UTC (rev 13809)
@@ -0,0 +1,70 @@
+#! /bin/sh
+
+tmp3=$(mktemp)
+perl -e'require "/etc/gforge/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' ;" \
+    | PGPASSFILE=/tmp/tmp.wOirlBjmDn /usr/bin/psql -U gforge gforge \
+    | tail -n +3 \
+    | grep '^ ')
+
+wdprefix=/var/lib/gforge/plugins/mediawiki/wikidata
+
+for project in $projects ; do
+    if [ ! -d $wdprefix/$project/images ] ; then
+	mkdir -p $wdprefix/$project/images
+	chown www-data $wdprefix/$project/images
+	touch $wdprefix/$project/LocalSettings.php
+	filteredprojects="$filteredprojects $project"
+    fi
+done
+
+projects=$filteredprojects
+
+for project in $projects ; do
+    schema=$(echo plugin_mediawiki_$project | sed s/-/_/g)
+
+    tmp1=$(mktemp)
+    tmp2=$(mktemp)
+
+    if su -s /bin/sh postgres -c "/usr/bin/psql gforge" 1> $tmp1 2> $tmp2 <<-EOF \
+        && [ "$(tail -n +2 $tmp1 | head -1)" = 'CREATE SCHEMA' ] ;
+SET LC_MESSAGES = 'C' ;
+CREATE SCHEMA $schema ;
+ALTER SCHEMA $schema OWNER TO gforge;
+EOF
+    then
+        rm -f $tmp1 $tmp2
+    else
+        echo "CREATE SCHEMA's STDOUT:"
+        cat $tmp1
+        echo "CREATE SCHEMA's STDERR:"
+        cat $tmp2
+        rm -f $tmp1 $tmp2 $tmp3
+	exit 1
+    fi
+
+    tmp1=$(mktemp)
+    tmp2=$(mktemp)
+
+    if PGPASSFILE=$tmp3 /usr/bin/psql -U gforge gforge 1> $tmp1 2> $tmp2 <<-EOF \
+        && true || [ "$(tail -1 $tmp1)" = 'COMMIT' ] ;
+SET search_path = "$schema" ;
+\i /usr/share/mediawiki/maintenance/postgres/tables.sql
+CREATE TEXT SEARCH CONFIGURATION $schema.default ( COPY = pg_catalog.english );
+COMMIT ;
+EOF
+    then
+        rm -f $tmp1 $tmp2
+    else
+        echo "Database creation STDOUT:"
+        cat $tmp1
+        echo "Database creation STDERR:"
+        cat $tmp2
+        rm -f $tmp1 $tmp2 $tmp3
+        exit 1
+    fi
+
+done
+
+rm -f $tmp3


Property changes on: trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/cronjobs/create-wikis.sh
___________________________________________________________________
Added: svn:executable
   + *

Modified: trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/www/frame.php
===================================================================
--- trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/www/frame.php	2011-02-28 01:59:47 UTC (rev 13808)
+++ trunk/gforge_base/evolvisforge-5.1/gforge/plugins/mediawiki/www/frame.php	2011-02-28 01:59:50 UTC (rev 13809)
@@ -32,7 +32,11 @@
 
 site_project_header($params);
 
-echo '<iframe src="'.util_make_url('/plugins/mediawiki/wiki/'.$group->getUnixName().'/index.php').'" frameborder="no" width=100% height=700></iframe>' ;
+if (file_exists ('/var/lib/gforge/plugins/mediawiki/wikidata/'.$group->getUnixName().'/LocalSettings.php')) {
+	echo '<iframe src="'.util_make_url('/plugins/mediawiki/wiki/'.$group->getUnixName().'/index.php').'" frameborder="no" width=100% height=700></iframe>' ;
+} else {
+	print _('Wiki not created yet, please wait for a few minutes.');
+}
 
 site_project_footer(array());
 



More information about the evolvis-commits mailing list