X-Git-Url: https://git.cyclocoop.org/%27.WWW_URL.%27admin/?a=blobdiff_plain;f=update.php;h=fc95ba1752b71fead272180aebdf154d1baea8c2;hb=c3fe33524131d0fb672157cfb91c0d7bd085c469;hp=054c192e98262a254e27ca4726d706e13c034b26;hpb=8609ef44c788cc41470570227e91e5cd3384f230;p=lhc%2Fweb%2Fwiklou.git diff --git a/update.php b/update.php index 054c192e98..fc95ba1752 100644 --- a/update.php +++ b/update.php @@ -1,31 +1,11 @@ $specs ) { - $sql = "ALTER TABLE $table $specs"; - print "$sql;\n"; - $res = mysql_query( $sql, $rconn ); - if ( $res === false ) { - print "MySQL error: " . mysql_error( $rconn ) . "\n"; - } - } - mysql_close( $rconn ); -} + do_revision_updates(); + + do_ipblocks_update(); + do_interwiki_update(); + do_index_update(); + do_linkscc_update(); -# -# Copy files into installation directories -# -print "Copying files...\n"; - -copyfile( ".", "wiki.phtml", $IP ); -copyfile( ".", "redirect.phtml", $IP ); -copyfile( ".", "texvc.phtml", $IP ); - -copydirectory( "./includes", $IP ); -copydirectory( "./stylesheets", $wgStyleSheetDirectory ); - -copyfile( "./images", "wiki.png", $wgUploadDirectory ); -copyfile( "./languages", "Language.php", $IP ); -copyfile( "./languages", "Language" . ucfirst( $wgLanguageCode ) . ".php", $IP ); - -$fp = fopen( $wgDebugLogFile, "w" ); -if ( false === $fp ) { - print "Could not create log file \"{$wgDebugLogFile}\".\n"; - exit(); -} -$d = date( "Y-m-d H:i:s" ); -fwrite( $fp, "Wiki debug log file created {$d}\n\n" ); -fclose( $fp ); - -if ( $wgUseTeX ) { - copyfile( "./math", "texvc", "{$IP}/math", 0775 ); - copyfile( "./math", "texvc_test", "{$IP}/math", 0775 ); - copyfile( "./math", "texvc_tex", "{$IP}/math", 0775 ); -} + initialiseMessages(); -copyfile( ".", "Version.php", $IP ); + mysql_close( $rconn ); print "Done.\n"; exit(); @@ -117,41 +64,46 @@ exit(); # # -function copyfile( $sdir, $name, $ddir, $perms = 0664 ) { - global $wgInstallOwner, $wgInstallGroup; - - $d = "{$ddir}/{$name}"; - if ( copy( "{$sdir}/{$name}", $d ) ) { - if ( isset( $wgInstallOwner ) ) { chown( $d, $wgInstallOwner ); } - if ( isset( $wgInstallGroup ) ) { chgrp( $d, $wgInstallGroup ); } - chmod( $d, $perms ); - # print "Copied \"{$name}\" to \"{$ddir}\".\n"; - } else { - print "Failed to copy file \"{$name}\" to \"{$ddir}\".\n"; +function do_update_files() { + global $IP, $wgStyleSheetDirectory, $wgUploadDirectory, $wgLanguageCode, $wgDebugLogFile; + print "Copying files... "; + + copyfile( ".", "wiki.phtml", $IP ); + copyfile( ".", "redirect.phtml", $IP ); + copyfile( ".", "texvc.phtml", $IP ); + + copydirectory( "./includes", $IP ); + copydirectory( "./stylesheets", $wgStyleSheetDirectory ); + + copyfile( "./images", "wiki.png", $wgUploadDirectory ); + copyfile( "./languages", "Language.php", $IP ); + copyfile( "./languages", "Language" . ucfirst( $wgLanguageCode ) . ".php", $IP ); + + $fp = fopen( $wgDebugLogFile, "w" ); + if ( false === $fp ) { + print "Could not create log file \"{$wgDebugLogFile}\".\n"; exit(); } -} - -function copydirectory( $source, $dest ) { - $handle = opendir( $source ); - while ( false !== ( $f = readdir( $handle ) ) ) { - if ( "." == $f{0} ) continue; - # Windows turned all my CVS->cvs :( - if ( !strcasecmp ( "CVS", $f ) ) continue; - copyfile( $source, $f, $dest ); + $d = date( "Y-m-d H:i:s" ); + fwrite( $fp, "Wiki debug log file created {$d}\n\n" ); + fclose( $fp ); + + if ( $wgUseTeX ) { + copyfile( "./math", "texvc", "{$IP}/math", 0775 ); + copyfile( "./math", "texvc_test", "{$IP}/math", 0775 ); + copyfile( "./math", "texvc_tex", "{$IP}/math", 0775 ); } -} + + copyfile( ".", "Version.php", $IP ); -function readconsole() { - $fp = fopen( "php://stdin", "r" ); - $resp = trim( fgets( $fp, 1024 ) ); - fclose( $fp ); - return $resp; + print "ok\n"; } function do_revision_updates() { global $wgSoftwareRevision; - if ( $wgSoftwareRevision < 1001 ) { update_passwords(); } + if ( $wgSoftwareRevision < 1001 ) { + update_passwords(); + } } function update_passwords() { @@ -179,21 +131,55 @@ function update_passwords() { } } -function alter_ipblocks() { - global $wgAlterSpecs; - +function do_ipblocks_update() { if ( wfFieldExists( "ipblocks", "ipb_id" ) ) { - return; + echo "...ipblocks table is up to date.\n"; + } else { + echo "Updating ipblocks table... "; + dbsource( "maintenance/archives/patch-ipblocks.sql" ); + echo "ok\n"; } - - if ( array_key_exists( "ipblocks", $wgAlterSpecs ) ) { - $wgAlterSpecs["ipblocks"] .= ","; +} + + +function do_interwiki_update() { + # Check that interwiki table exists; if it doesn't source it + if( table_exists( "interwiki" ) ) { + echo "...already have interwiki table\n"; + return true; } + echo "Creating interwiki table: "; + dbsource( "maintenance/archives/patch-interwiki.sql" ); + echo "ok\n"; + echo "Adding default interwiki definitions: "; + dbsource( "maintenance/interwiki.sql" ); + echo "ok\n"; +} - $wgAlterSpecs["ipblocks"] .= - "ADD ipb_auto tinyint(1) NOT NULL default '0', ". - "ADD ipb_id int(8) NOT NULL auto_increment,". - "ADD PRIMARY KEY (ipb_id)"; +function do_index_update() { + # Check that proper indexes are in place + $meta = field_info( "recentchanges", "rc_timestamp" ); + if( $meta->multiple_key == 0 ) { + echo "Updating indexes to 20031107: "; + dbsource( "maintenance/archives/patch-indexes.sql" ); + echo "ok\n"; + return true; + } + echo "...indexes seem up to 20031107 standards\n"; + return false; } +function do_linkscc_update() { + // Create linkscc if necessary + global $rconn; + if( table_exists( "linkscc" ) ) { + echo "...have linkscc table.\n"; + } else { + echo "Adding linkscc table... "; + dbsource( "maintenance/archives/patch-linkscc.sql" ); + echo "ok\n"; + } +} + + ?>