Index: trunk/testing/wikiation_check_isolation/compare_db.sh |
— | — | @@ -0,0 +1,25 @@ |
| 2 | +#!/bin/bash |
| 3 | +# compare database description directories created by |
| 4 | +# dump_desc.sh, and write a report to current/ |
| 5 | + |
| 6 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 7 | +# This software is developed by Kim Bruning. |
| 8 | +# |
| 9 | +# Distributed under the terms of the MIT license. |
| 10 | + |
| 11 | + |
| 12 | + |
| 13 | +if [[ $0 == '/'* ]]; then |
| 14 | + ScriptLocation="`dirname $0`" |
| 15 | +else |
| 16 | + ScriptLocation="`pwd`"/"`dirname $0`" |
| 17 | +fi |
| 18 | + |
| 19 | +data=$ScriptLocation/data |
| 20 | +current=$ScriptLocation/current |
| 21 | + |
| 22 | +mkdir -p $current |
| 23 | + |
| 24 | +$ScriptLocation/dump_desc.sh $current/current_db |
| 25 | + |
| 26 | +diff -rN $data/original_db $current/current_db > $current/dbdiff_report |
Property changes on: trunk/testing/wikiation_check_isolation/compare_db.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 27 | + native |
Added: svn:executable |
2 | 28 | + |
Index: trunk/testing/wikiation_check_isolation/create_data.sh |
— | — | @@ -0,0 +1,20 @@ |
| 2 | +#!/bin/bash |
| 3 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 4 | +# This software is developed by Kim Bruning. |
| 5 | +# |
| 6 | +# Distributed under the terms of the MIT license. |
| 7 | + |
| 8 | + |
| 9 | + |
| 10 | +if [[ $0 == '/'* ]]; then |
| 11 | + ScriptLocation="`dirname $0`" |
| 12 | +else |
| 13 | + ScriptLocation="`pwd`"/"`dirname $0`" |
| 14 | +fi |
| 15 | + |
| 16 | +data=$ScriptLocation/data |
| 17 | +source $ScriptLocation/settings |
| 18 | + |
| 19 | +mkdir -p $data |
| 20 | +cp -r $mediawiki_location $data |
| 21 | +$ScriptLocation/dump_desc.sh $data/original_db |
Property changes on: trunk/testing/wikiation_check_isolation/create_data.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 22 | + native |
Added: svn:executable |
2 | 23 | + |
Index: trunk/testing/wikiation_check_isolation/compare_all.sh |
— | — | @@ -0,0 +1,45 @@ |
| 2 | +#!/bin/bash |
| 3 | + |
| 4 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 5 | +# This software is developed by Kim Bruning. |
| 6 | +# |
| 7 | +# Distributed under the terms of the MIT license. |
| 8 | + |
| 9 | + |
| 10 | + |
| 11 | +RED='\e[0;31m' |
| 12 | +GREEN='\e[0;32m' |
| 13 | +NC='\e[0m' # No Color |
| 14 | + |
| 15 | +if [[ $0 == '/'* ]]; then |
| 16 | + ScriptLocation="`dirname $0`" |
| 17 | +else |
| 18 | + ScriptLocation="`pwd`"/"`dirname $0`" |
| 19 | +fi |
| 20 | + |
| 21 | +data=$ScriptLocation/data |
| 22 | +current=$ScriptLocation/current |
| 23 | + |
| 24 | +$ScriptLocation/compare_mw.sh $1 $2 |
| 25 | +$ScriptLocation/compare_db.sh |
| 26 | + |
| 27 | +[ ! -s $current/mwdiff_report ] && |
| 28 | + echo -e "$GREEN * $NC After installation no difference found with the original MediaWiki core." |
| 29 | + |
| 30 | +[ ! -s $current/dbdiff_report ] && |
| 31 | + echo -e "$GREEN * $NC After installation no difference found with the structure of the original MediaWiki database." |
| 32 | + |
| 33 | +[ -s $current/mwdiff_report ] && { |
| 34 | + echo |
| 35 | + echo -e "$RED * $NC MediaWiki differences: " |
| 36 | + cat $current/mwdiff_report |
| 37 | +} |
| 38 | + |
| 39 | + |
| 40 | +[ -s $current/dbdiff_report ] && { |
| 41 | + echo |
| 42 | + echo -e "$RED * $NC MediaWiki Database differences: " |
| 43 | + cat $current/dbdiff_report |
| 44 | +} |
| 45 | + |
| 46 | +exit ! ( -s $current/mwdiff_report || -s $current/dbdiff_report ) |
Property changes on: trunk/testing/wikiation_check_isolation/compare_all.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 47 | + native |
Added: svn:executable |
2 | 48 | + |
Index: trunk/testing/wikiation_check_isolation/dl_and_check.sh |
— | — | @@ -0,0 +1,47 @@ |
| 2 | +#!/bin/bash |
| 3 | +#load data on a particular revision |
| 4 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 5 | +# This software is developed by Kim Bruning. |
| 6 | +# |
| 7 | +# Distributed under the terms of the MIT license. |
| 8 | + |
| 9 | + |
| 10 | + |
| 11 | +if [[ $0 == '/'* ]]; then |
| 12 | + ScriptLocation="`dirname $0`" |
| 13 | +else |
| 14 | + ScriptLocation="`pwd`"/"`dirname $0`" |
| 15 | +fi |
| 16 | + |
| 17 | +target=$1 |
| 18 | + |
| 19 | +if test -z $1; then |
| 20 | + echo "syntax: check_isolation <revision name>" |
| 21 | + exit 0 |
| 22 | +fi |
| 23 | + |
| 24 | + |
| 25 | +if echo $1 | grep "/" ; then |
| 26 | + target=`basename $1` |
| 27 | + target_dir=`dirname $1` |
| 28 | +else |
| 29 | + target=$1 |
| 30 | + target_dir="/var/www/revisions/$target"; |
| 31 | +fi |
| 32 | + |
| 33 | + |
| 34 | +if test ! -e $target_dir; then |
| 35 | + echo "$target not found" |
| 36 | + exit 0 |
| 37 | +fi |
| 38 | + |
| 39 | + |
| 40 | +p1=$2 |
| 41 | +p2=$3 |
| 42 | + |
| 43 | +export mediawiki=$target |
| 44 | +export mediawiki_location=$target_dir |
| 45 | +$ScriptLocation/load.sh $target && |
| 46 | +echo "Running checks:" && |
| 47 | +$ScriptLocation/compare_all.sh $p1 $p2 |
| 48 | +exit $? |
Property changes on: trunk/testing/wikiation_check_isolation/dl_and_check.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 49 | + native |
Added: svn:executable |
2 | 50 | + |
Index: trunk/testing/wikiation_check_isolation/save.sh |
— | — | @@ -0,0 +1,24 @@ |
| 2 | +#!/bin/bash |
| 3 | + |
| 4 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 5 | +# This software is developed by Kim Bruning. |
| 6 | +# |
| 7 | +# Distributed under the terms of the MIT license. |
| 8 | + |
| 9 | + |
| 10 | +if [[ $0 == '/'* ]]; then |
| 11 | + ScriptLocation="`dirname $0`" |
| 12 | +else |
| 13 | + ScriptLocation="`pwd`"/"`dirname $0`" |
| 14 | +fi |
| 15 | + |
| 16 | +source ${ScriptLocation}/settings |
| 17 | + |
| 18 | +echo "-- Storing data." |
| 19 | +cd $ScriptLocation |
| 20 | +tarball=${mediawiki}.tar.gz |
| 21 | +tar czf $tarball data |
| 22 | +revisions=$ScriptLocation/revisions |
| 23 | + |
| 24 | +mkdir -p $revisions |
| 25 | +cp $tarball $revisions |
Property changes on: trunk/testing/wikiation_check_isolation/save.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 26 | + native |
Added: svn:executable |
2 | 27 | + |
Index: trunk/testing/wikiation_check_isolation/load.sh |
— | — | @@ -0,0 +1,22 @@ |
| 2 | +#!/bin/bash |
| 3 | + |
| 4 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 5 | +# This software is developed by Kim Bruning. |
| 6 | +# |
| 7 | +# Distributed under the terms of the MIT license. |
| 8 | + |
| 9 | + |
| 10 | +if [[ $0 == '/'* ]]; then |
| 11 | + ScriptLocation="`dirname $0`" |
| 12 | +else |
| 13 | + ScriptLocation="`pwd`"/"`dirname $0`" |
| 14 | +fi |
| 15 | + |
| 16 | +source $ScriptLocation/settings |
| 17 | +revisions=$ScriptLocation/revisions |
| 18 | +tarball=${mediawiki}.tar.gz |
| 19 | +echo "- Obtaining comparison data" |
| 20 | +cp $revisions/$tarball $ScriptLocation |
| 21 | +rm -rf $ScriptLocation/data |
| 22 | +cd $ScriptLocation |
| 23 | +tar xf $ScriptLocation/$tarball |
Property changes on: trunk/testing/wikiation_check_isolation/load.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 24 | + native |
Added: svn:executable |
2 | 25 | + |
Index: trunk/testing/wikiation_check_isolation/dump_desc.sh |
— | — | @@ -0,0 +1,25 @@ |
| 2 | +#!/bin/bash |
| 3 | +# create a directory describing wiki database (for easy diff-ing) |
| 4 | + |
| 5 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 6 | +# This software is developed by Kim Bruning. |
| 7 | +# |
| 8 | +# Distributed under the terms of the MIT license. |
| 9 | + |
| 10 | + |
| 11 | + |
| 12 | +set -u |
| 13 | +set -e |
| 14 | + |
| 15 | +target_dir=$1 |
| 16 | + |
| 17 | +rm -rf $target_dir |
| 18 | +mkdir -p $target_dir |
| 19 | + |
| 20 | +echo "show tables" | mysql $mediawiki | grep -v Tables_in_$mediawiki > $target_dir/tables |
| 21 | + |
| 22 | +exec < $target_dir/tables |
| 23 | +while read table |
| 24 | +do |
| 25 | + echo "desc $table" | mysql $mediawiki > $target_dir/$table |
| 26 | +done |
Property changes on: trunk/testing/wikiation_check_isolation/dump_desc.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 27 | + native |
Added: svn:executable |
2 | 28 | + |
Index: trunk/testing/wikiation_check_isolation/README |
— | — | @@ -0,0 +1,47 @@ |
| 2 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 3 | +# This software is developed by Kim Bruning. |
| 4 | +# |
| 5 | +# Distributed under the terms of the MIT license. |
| 6 | + |
| 7 | + |
| 8 | +dl_and_check.sh |
| 9 | +create_and_ul.sh |
| 10 | + |
| 11 | +settings |
| 12 | + |
| 13 | +Quick hack/ Test suite to check Mediawiki, sees which changes have been made to |
| 14 | +mediawiki code, or to the database. Written by Kim Bruning |
| 15 | + |
| 16 | +Currently handles 1 changeset only, this changeset is stored at the |
| 17 | +remote location specified in the settings file. |
| 18 | + |
| 19 | +==create_and_ul.sh== |
| 20 | +<Depreciated gwicke 08/2008: only pull supported> |
| 21 | + |
| 22 | +Creates a new changeset for the specified revision |
| 23 | +will be run from the installer (so you never need to use this!) |
| 24 | + |
| 25 | + |
| 26 | +==dl_and_check.sh [--detail|-d] [exclude]== |
| 27 | +Checks changeset against current mediawiki and database for your revision |
| 28 | +Will report any differences. |
| 29 | + |
| 30 | +If the detail flag is set, will give more detail on mediawiki code comparison |
| 31 | + to wit: |
| 32 | + diff -q (show only whether files differ) is turned off, |
| 33 | + diff -N (assume missing files are empty) is turned on. |
| 34 | + |
| 35 | +Files and directories matching the optional exclude pattern will be ignored. |
| 36 | + |
| 37 | +== settings == |
| 38 | +Deprecated |
| 39 | + |
| 40 | +== Use on 83.149.110.226 or other wikitestservers == |
| 41 | + |
| 42 | +dl_and_check.sh can be called via CheckMWandDBdiff |
| 43 | + |
| 44 | +Should assumptions change, please contact the author. |
| 45 | + |
| 46 | +== Example == |
| 47 | + |
| 48 | +Check |
Property changes on: trunk/testing/wikiation_check_isolation/README |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 49 | + native |
Index: trunk/testing/wikiation_check_isolation/create_and_ul.sh |
— | — | @@ -0,0 +1,37 @@ |
| 2 | +#!/bin/bash |
| 3 | +#save data on a particular revision |
| 4 | + |
| 5 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 6 | +# This software is developed by Kim Bruning. |
| 7 | +# |
| 8 | +# Distributed under the terms of the MIT license. |
| 9 | + |
| 10 | + |
| 11 | +if [[ $0 == '/'* ]]; then |
| 12 | + ScriptLocation="`dirname $0`" |
| 13 | +else |
| 14 | + ScriptLocation="`pwd`"/"`dirname $0`" |
| 15 | +fi |
| 16 | + |
| 17 | + |
| 18 | + |
| 19 | +if echo $1 | grep "/" ; then |
| 20 | + target=`basename $1` |
| 21 | + target_dir=`dirname $1` |
| 22 | +else |
| 23 | + target=$1 |
| 24 | + target_dir="/var/www/revisions/$target"; |
| 25 | +fi |
| 26 | + |
| 27 | + |
| 28 | +if test ! -e $target_dir; then |
| 29 | + echo "$target not found" |
| 30 | + exit 0 |
| 31 | +fi |
| 32 | + |
| 33 | +echo "- Collecting data." |
| 34 | +export mediawiki=$target |
| 35 | +export mediawiki_location=$target_dir |
| 36 | + $ScriptLocation/create_data.sh && |
| 37 | + $ScriptLocation/save.sh |
| 38 | + |
Property changes on: trunk/testing/wikiation_check_isolation/create_and_ul.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 39 | + native |
Added: svn:executable |
2 | 40 | + |
Index: trunk/testing/wikiation_check_isolation/settings |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +# depreciated gwicke 08/2008 |
| 3 | +# rest of file now currently unused. WOW! |
| 4 | + |
| 5 | + |
Property changes on: trunk/testing/wikiation_check_isolation/settings |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 6 | + native |
Index: trunk/testing/wikiation_check_isolation/LICENSE |
— | — | @@ -0,0 +1,23 @@ |
| 2 | +This software, copyright (C) 2008-2009 by Wikiation. This software is developed by Kim Bruning. |
| 3 | +Copyright (C) 2009 Kim Bruning |
| 4 | + |
| 5 | + |
| 6 | +Permission is hereby granted, free of charge, to any person obtaining a copy |
| 7 | +of this software and associated documentation files (the "Software"), to deal |
| 8 | +in the Software without restriction, including without limitation the rights to |
| 9 | +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies |
| 10 | +of the Software, and to permit persons to whom the Software is furnished to do |
| 11 | +so, subject to the following conditions: |
| 12 | + |
| 13 | +The above copyright notice and this permission notice shall be included in all |
| 14 | +copies or substantial portions of the Software. |
| 15 | + |
| 16 | +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| 17 | +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| 18 | +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
| 19 | +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
| 20 | +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
| 21 | +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
| 22 | +SOFTWARE. |
| 23 | + |
| 24 | + |
Property changes on: trunk/testing/wikiation_check_isolation/LICENSE |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 25 | + native |
Index: trunk/testing/wikiation_check_isolation/compare_mw.sh |
— | — | @@ -0,0 +1,35 @@ |
| 2 | +#!/bin/bash |
| 3 | +#compare local mediawiki installation with our own copy |
| 4 | + |
| 5 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 6 | +# This software is developed by Kim Bruning. |
| 7 | +# |
| 8 | +# Distributed under the terms of the MIT license. |
| 9 | + |
| 10 | + |
| 11 | + |
| 12 | +if [[ $0 == '/'* ]]; then |
| 13 | + ScriptLocation="`dirname $0`" |
| 14 | +else |
| 15 | + ScriptLocation="`pwd`"/"`dirname $0`" |
| 16 | +fi |
| 17 | + |
| 18 | +source $ScriptLocation/settings |
| 19 | +data=$ScriptLocation/data |
| 20 | +current=$ScriptLocation/current |
| 21 | + |
| 22 | +mask=$1 |
| 23 | +detail='-q' |
| 24 | + |
| 25 | +if [[ ( $mask = "--detail" ) || ( $mask = "-d" ) ]]; then |
| 26 | + mask=$2 |
| 27 | + detail='-N' |
| 28 | +fi |
| 29 | + |
| 30 | +mkdir -p $current |
| 31 | + |
| 32 | +if [[ -n $mask ]] ; then |
| 33 | + diff -r $detail -x $mask $mediawiki_location $data/$mediawiki >$current/mwdiff_report |
| 34 | +else |
| 35 | + diff -r $detail $mediawiki_location $data/$mediawiki >$current/mwdiff_report |
| 36 | +fi |
Property changes on: trunk/testing/wikiation_check_isolation/compare_mw.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 37 | + native |
Added: svn:executable |
2 | 38 | + |
Index: trunk/testing/installer/LocalSettings.php |
— | — | @@ -0,0 +1,143 @@ |
| 2 | +<?php |
| 3 | + |
| 4 | +# This file was automatically generated by the MediaWiki installer. |
| 5 | +# If you make manual changes, please keep track in case you need to |
| 6 | +# recreate them later. |
| 7 | +# |
| 8 | +# See includes/DefaultSettings.php for all configurable settings |
| 9 | +# and their default values, but don't forget to make changes in _this_ |
| 10 | +# file, not there. |
| 11 | + |
| 12 | +error_reporting( E_ALL | E_STRICT); |
| 13 | + |
| 14 | +# If you customize your file layout, set $IP to the directory that contains |
| 15 | +# the other MediaWiki files. It will be used as a base to locate files. |
| 16 | +if( defined( 'MW_INSTALL_PATH' ) ) { |
| 17 | + $IP = MW_INSTALL_PATH; |
| 18 | +} else { |
| 19 | + $IP = dirname( __FILE__ ); |
| 20 | +} |
| 21 | + |
| 22 | +$path = array( $IP, "$IP/includes", "$IP/languages" ); |
| 23 | +set_include_path( implode( PATH_SEPARATOR, $path ) . PATH_SEPARATOR . get_include_path() ); |
| 24 | + |
| 25 | +require_once( "$IP/includes/DefaultSettings.php" ); |
| 26 | + |
| 27 | +# If PHP's memory limit is very low, some operations may fail. |
| 28 | +# ini_set( 'memory_limit', '20M' ); |
| 29 | + |
| 30 | +if ( $wgCommandLineMode ) { |
| 31 | + if ( isset( $_SERVER ) && array_key_exists( 'REQUEST_METHOD', $_SERVER ) ) { |
| 32 | + die( "This script must be run from the command line\n" ); |
| 33 | + } |
| 34 | +} |
| 35 | +## Uncomment this to disable output compression |
| 36 | +# $wgDisableOutputCompression = true; |
| 37 | + |
| 38 | +require_once ("$IP/InstallerUniqueSettings.php"); |
| 39 | + |
| 40 | +## The URL base path to the directory containing the wiki; |
| 41 | +## defaults for all runtime URL paths are based off of this. |
| 42 | +$wgScriptExtension = ".php"; |
| 43 | + |
| 44 | + |
| 45 | +## For more information on customizing the URLs please see: |
| 46 | +## http://www.mediawiki.org/wiki/Manual:Short_URL |
| 47 | + |
| 48 | +$wgEnableEmail = true; |
| 49 | +$wgEnableUserEmail = true; |
| 50 | + |
| 51 | +$wgEmergencyContact = "webmaster@localhost"; |
| 52 | +$wgPasswordSender = "webmaster@localhost"; |
| 53 | + |
| 54 | +## For a detailed description of the following switches see |
| 55 | +## http://www.mediawiki.org/wiki/Extension:Email_notification |
| 56 | +## and http://www.mediawiki.org/wiki/Extension:Email_notification |
| 57 | +## There are many more options for fine tuning available see |
| 58 | +## /includes/DefaultSettings.php |
| 59 | +## UPO means: this is also a user preference option |
| 60 | +$wgEnotifUserTalk = true; # UPO |
| 61 | +$wgEnotifWatchlist = true; # UPO |
| 62 | +$wgEmailAuthentication = true; |
| 63 | + |
| 64 | +$wgDBtype = "mysql"; |
| 65 | +$wgDBserver = "localhost"; |
| 66 | +$wgDBuser = "root"; |
| 67 | +$wgDBpassword = ""; |
| 68 | + |
| 69 | +# MySQL specific settings |
| 70 | +$wgDBprefix = ""; |
| 71 | + |
| 72 | +# MySQL table options to use during installation or update |
| 73 | +$wgDBTableOptions = "TYPE=InnoDB"; |
| 74 | + |
| 75 | +# Experimental charset support for MySQL 4.1/5.0. |
| 76 | +$wgDBmysql5 = false; |
| 77 | + |
| 78 | +# Postgres specific settings |
| 79 | +$wgDBport = "5432"; |
| 80 | +$wgDBmwschema = "mediawiki"; |
| 81 | +$wgDBts2schema = "public"; |
| 82 | + |
| 83 | +## Shared memory settings |
| 84 | +$wgMainCacheType = CACHE_ACCEL; |
| 85 | +$wgMemCachedServers = array(); |
| 86 | + |
| 87 | +## To enable image uploads, make sure the 'images' directory |
| 88 | +## is writable, then set this to true: |
| 89 | +$wgEnableUploads = false; |
| 90 | +# $wgUseImageMagick = true; |
| 91 | +# $wgImageMagickConvertCommand = "/usr/bin/convert"; |
| 92 | + |
| 93 | +## If you want to use image uploads under safe mode, |
| 94 | +## create the directories images/archive, images/thumb and |
| 95 | +## images/temp, and make them all writable. Then uncomment |
| 96 | +## this, if it's not already uncommented: |
| 97 | +# $wgHashedUploadDirectory = false; |
| 98 | + |
| 99 | +## If you have the appropriate support software installed |
| 100 | +## you can enable inline LaTeX equations: |
| 101 | +$wgUseTeX = false; |
| 102 | + |
| 103 | +$wgLocalInterwiki = $wgSitename; |
| 104 | + |
| 105 | +$wgLanguageCode = "en"; |
| 106 | + |
| 107 | +$wgProxyKey = "eeedfbcf7f4e6238a2db7959e50e5e19d0e0c1a6500dbfaa5d38f6dabe801c76"; |
| 108 | + |
| 109 | +## Default skin: you can change the default skin. Use the internal symbolic |
| 110 | +## names, ie 'standard', 'nostalgia', 'cologneblue', 'monobook': |
| 111 | +$wgDefaultSkin = 'monobook'; |
| 112 | + |
| 113 | +## For attaching licensing metadata to pages, and displaying an |
| 114 | +## appropriate copyright notice / icon. GNU Free Documentation |
| 115 | +## License and Creative Commons licenses are supported so far. |
| 116 | +# $wgEnableCreativeCommonsRdf = true; |
| 117 | +$wgRightsPage = ""; # Set to the title of a wiki page that describes your license/copyright |
| 118 | +$wgRightsUrl = ""; |
| 119 | +$wgRightsText = ""; |
| 120 | +$wgRightsIcon = ""; |
| 121 | +# $wgRightsCode = ""; # Not yet used |
| 122 | + |
| 123 | +$wgDiff3 = "/usr/bin/diff3"; |
| 124 | + |
| 125 | +# When you make changes to this configuration file, this will make |
| 126 | +# sure that cached pages are cleared. |
| 127 | +$wgCacheEpoch = max( $wgCacheEpoch, gmdate( 'YmdHis', @filemtime( __FILE__ ) ) ); |
| 128 | + |
| 129 | +$wgGroupPermissions['*' ]['read'] = true; |
| 130 | +$wgGroupPermissions['*' ]['write'] = false; |
| 131 | + |
| 132 | + |
| 133 | +# No wiki is complete without a logo. |
| 134 | +$wgLogo="$wgScriptPath/Logo.png"; |
| 135 | + |
| 136 | +# load Localsettings specific to particular modules |
| 137 | + |
| 138 | +$additional_settings=glob("$IP/LocalSettings/*.php"); |
| 139 | +foreach ($additional_settings as $file) { |
| 140 | + require_once($file); |
| 141 | +} |
| 142 | + |
| 143 | + |
| 144 | +?> |
Index: trunk/testing/installer/extension_installer2.py |
— | — | @@ -0,0 +1,20 @@ |
| 2 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 3 | +# This software is developed by Kim Bruning. |
| 4 | +# |
| 5 | +# Distributed under the terms of the MIT license. |
| 6 | + |
| 7 | +from combined_installer import Combined_Installer |
| 8 | +from scripted_installer import Scripted_Installer |
| 9 | +from naive_installer import Naive_Installer |
| 10 | + |
| 11 | + |
| 12 | +def extension_installer2(): |
| 13 | + """factory: returns a combined installer that installs extensions from either scripted or naive |
| 14 | + |
| 15 | + technical detail: |
| 16 | + For use with installers.get_system(system_name) |
| 17 | + we exploit the fact that instantiation has the same semantics as a function call""" |
| 18 | + scripted=Scripted_Installer() |
| 19 | + naive=Naive_Installer() |
| 20 | + combined=Combined_Installer([scripted,naive]) |
| 21 | + return combined |
Index: trunk/testing/installer/naive_installer.py |
— | — | @@ -0,0 +1,41 @@ |
| 2 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 3 | +# This software is developed by Kim Bruning. |
| 4 | +# |
| 5 | +# Distributed under the terms of the MIT license. |
| 6 | + |
| 7 | +import settings_handler as settings |
| 8 | +import os, os.path, shutil |
| 9 | +import subprocess |
| 10 | + |
| 11 | +from installation_system import Installation_System |
| 12 | +from extension_installer import Extension_Installer_Exception |
| 13 | +from download_installer import Download_Installer, Download_Installer_Exception |
| 14 | + |
| 15 | +class Naive_Installer_Exception(Download_Installer_Exception): |
| 16 | + pass |
| 17 | + |
| 18 | +class Unsupported_Exception(Exception): |
| 19 | + pass |
| 20 | + |
| 21 | +class Naive_Installer(Download_Installer): |
| 22 | + """download an extension, and try to naively just require_once() it in |
| 23 | + LocalSettings, this SHOULD work 60-80% of the time. (famous last words)""" |
| 24 | + system_name='naive' |
| 25 | + destination_dir=None |
| 26 | + |
| 27 | + def install_settings(self,installer_name): |
| 28 | + |
| 29 | + settings=file(self._settings_filepath(installer_name),"w") |
| 30 | + |
| 31 | + n=installer_name |
| 32 | + settings.write('<?PHP\n') |
| 33 | + settings.write('require_once("$IP/extensions/'+n+'/'+n+'.php");\n'); |
| 34 | + settings.write('?>\n') |
| 35 | + settings.close() |
| 36 | + |
| 37 | + def uninstall_settings(self,installer_name): |
| 38 | + # rm -f (fail silently) |
| 39 | + try: |
| 40 | + os.unlink(self._settings_filepath(installer_name)) |
| 41 | + except OSError: |
| 42 | + pass |
Property changes on: trunk/testing/installer/naive_installer.py |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 43 | + native |
Index: trunk/testing/installer/mediawiki_installer.py |
— | — | @@ -0,0 +1,344 @@ |
| 2 | +# This software is developed by Kim Bruning. |
| 3 | +# |
| 4 | +# Distributed under the terms of the MIT license. |
| 5 | + |
| 6 | +import settings_handler as settings |
| 7 | +import os, os.path, shutil, sys |
| 8 | +import subprocess |
| 9 | + |
| 10 | +from installation_system import Installation_System, Installer_Exception |
| 11 | + |
| 12 | +from installer_util import * |
| 13 | +from isolation import * |
| 14 | + |
| 15 | +# this still uses some legacy structured code, wrapped in a class so it can't do |
| 16 | +#too much harm outside this file. Will refactor later when I have more time. |
| 17 | + |
| 18 | +# already partially refactored while creating class. |
| 19 | + |
| 20 | + |
| 21 | +#constants |
| 22 | + |
| 23 | +#Things that are not mediawiki revisions (in the svn tags directory on mediawiki svn) |
| 24 | +filter_available=['extensions/'] |
| 25 | + |
| 26 | +# a cache for mediawiki revisions. Just making a global in this namespace is easiest. |
| 27 | +revision_cache=[] |
| 28 | + |
| 29 | +class Mediawiki_Installer_Exception(Installer_Exception): |
| 30 | + pass |
| 31 | + |
| 32 | + |
| 33 | +class Mediawiki_Installer(Installation_System): |
| 34 | + """installer for mediawiki revisions""" |
| 35 | + system_name='mediawiki' |
| 36 | + # TODO: destination_dir isn't quite changable until we have finished refactoring everything (not today) |
| 37 | + def __init__(self): |
| 38 | + Installation_System.__init__(self) |
| 39 | + self.destination_dir=settings.instancesdir |
| 40 | + |
| 41 | + def get_installers(self): |
| 42 | + """list available items""" |
| 43 | + |
| 44 | + l=list(os.popen('svn ls '+settings.tagsdir)) |
| 45 | + stripped=[line.strip() for line in l] |
| 46 | + #filter out things that are not mediawiki revisions |
| 47 | + for item in filter_available: |
| 48 | + if item in stripped: |
| 49 | + stripped.remove(item) |
| 50 | + return stripped |
| 51 | + |
| 52 | + def get_tags(self,installer_name=None): |
| 53 | + return self.get_installers() |
| 54 | + |
| 55 | + #def exists: same as super |
| 56 | + |
| 57 | + # Hmm: perhaps these should really belong in a separate mixin? |
| 58 | + #installdir_name: unused, but leave for future expansion |
| 59 | + #exec_task: unused, but leave for future expansion |
| 60 | + #can_exec: unused, but leave for future expansion |
| 61 | + |
| 62 | + def get_installed(self): |
| 63 | + """list installed items""" |
| 64 | + if not self.destination_dir: |
| 65 | + raise Exception("Internal Error: Mediawiki_Installer: get_installed, self.destination_dir not set") |
| 66 | + return os.listdir(self.destination_dir) |
| 67 | + |
| 68 | + def is_installed(self, installer_name): |
| 69 | + return installer_name in self.get_installed() |
| 70 | + |
| 71 | + # super.get_info does something sane here, let's leave it in. |
| 72 | + # (we can even provide info files for certain releases if we want) |
| 73 | + |
| 74 | + def install(self, installer_name=None, as_alias=None): |
| 75 | + |
| 76 | + if self.tag: |
| 77 | + installer_name=self.tag |
| 78 | + |
| 79 | + if self.revision: |
| 80 | + installer_name="latest" |
| 81 | + |
| 82 | + if not installer_name: |
| 83 | + installer_name=self.instance |
| 84 | + |
| 85 | + if not installer_name: |
| 86 | + raise Mediawiki_Installer_Exception("Please specify which mediawiki tag or revision you would like to view") |
| 87 | + |
| 88 | + name=as_alias or self.as_alias or installer_name |
| 89 | + |
| 90 | + install(installer_name, name, self.revision) |
| 91 | + return self.is_installed(name) |
| 92 | + |
| 93 | + #download is unused, but leave for future expansion |
| 94 | + #install_settings unused |
| 95 | + #uninstall_settings |
| 96 | + |
| 97 | + def uninstall(self,installer_name): |
| 98 | + name=self.as_alias or installer_name |
| 99 | + if not self.is_installed(name): |
| 100 | + print name+" does not appear to be installed" |
| 101 | + return |
| 102 | + |
| 103 | + uninstall(name) |
| 104 | + return not self.is_installed(name) |
| 105 | + |
| 106 | + def get_revisions(self,installer=None): |
| 107 | + """Get list of available revisions. |
| 108 | + This list is cached in ram at first call to this function. |
| 109 | + installer parameter is ignored (inherited from Installation_System) |
| 110 | + """ |
| 111 | + |
| 112 | + |
| 113 | + global revision_cache |
| 114 | + if revision_cache: |
| 115 | + print "Using cached mediawiki revision list." |
| 116 | + else: |
| 117 | + print "Getting list of mediawiki revisions... One moment (takes 10-20 seconds)" |
| 118 | + sys.stdout.flush() |
| 119 | + revision_cache=self._get_revisions_generic("phase3") |
| 120 | + |
| 121 | + return revision_cache |
| 122 | + |
| 123 | + def get_svnbase(self): |
| 124 | + return settings.trunkdir |
| 125 | + |
| 126 | + |
| 127 | + def duplicate(self, src, dst): |
| 128 | + """Duplicate an existing instance. |
| 129 | + src is the instance to duplicate |
| 130 | + dst is the name to copy to. |
| 131 | + """ |
| 132 | + if not self.is_installed(src): |
| 133 | + raise Mediawiki_Installer_Exception(src+" not found.") |
| 134 | + |
| 135 | + if self.is_installed(dst): |
| 136 | + raise Mediawiki_Installer_Exception(dst+" already exists.") |
| 137 | + |
| 138 | + srcpath= os.path.join(settings.instancesdir,src) |
| 139 | + dstpath= os.path.join(settings.instancesdir,dst) |
| 140 | + dbtmp=os.path.join(dstpath,"installerdbtmp.sql") |
| 141 | + print "Copying instance files..." |
| 142 | + shutil.copytree(srcpath,dstpath,symlinks=True) |
| 143 | + print "updating unique settings" |
| 144 | + uniquesettings(dst) |
| 145 | + print "Copying instance database..." |
| 146 | + dumpdb(src,dbtmp) |
| 147 | + dropdb(dst) |
| 148 | + createdb(dst) |
| 149 | + do_sql(dst,dbtmp) |
| 150 | + print "cleanup" |
| 151 | + os.unlink(dbtmp) |
| 152 | + print "done." |
| 153 | + |
| 154 | + |
| 155 | + |
| 156 | +#TODO: use this method everywhere a database name is requested |
| 157 | +def dbname(installer_name): |
| 158 | + """based on the name of the installer/instance, figure out what the name of the |
| 159 | + database is. Right now we just use the name of the installer as the name of the database, |
| 160 | + but that might not always work.""" |
| 161 | + return installer_name |
| 162 | + |
| 163 | + |
| 164 | +#duplicate of get_installed() TODO: Refactor |
| 165 | +def installed(): |
| 166 | + """list installed items""" |
| 167 | + return os.listdir(settings.instancesdir) |
| 168 | + |
| 169 | +#duplicate of get_installers() TODO: Refactor |
| 170 | +def available(): |
| 171 | + """list available items""" |
| 172 | + |
| 173 | + l=list(os.popen('svn ls '+settings.tagsdir)) |
| 174 | + stripped=[line.strip() for line in l] |
| 175 | + for item in filter_available: |
| 176 | + if item in stripped: |
| 177 | + stripped.remove(item) |
| 178 | + return stripped |
| 179 | + |
| 180 | + |
| 181 | + |
| 182 | +def install(target, option_as, revision): |
| 183 | + """implement install command. Installs a mediawiki version""" |
| 184 | + target=clean_target(target) |
| 185 | + |
| 186 | + latest=False |
| 187 | + if target=="latest": |
| 188 | + latest=True |
| 189 | + |
| 190 | + if option_as: |
| 191 | + name=clean_target(option_as) |
| 192 | + else: |
| 193 | + name=target |
| 194 | + |
| 195 | + if name in installed(): |
| 196 | + print name+" already installed." |
| 197 | + return |
| 198 | + |
| 199 | + # available targets all end in '/', very consistent, this :-P |
| 200 | + if not latest and target+'/' not in available(): |
| 201 | + print target+" is not available or invalid.\n(try: ls available )" |
| 202 | + return |
| 203 | + |
| 204 | + #Everything checks out ok, so let's install. |
| 205 | + os.chdir(settings.instancesdir) |
| 206 | + print "Checking out code from subversion (please be patient)..." |
| 207 | + if latest: |
| 208 | + checkout_latest(name, revision) |
| 209 | + else: |
| 210 | + checkout(target+"/", name, revision) |
| 211 | + |
| 212 | + print "Copying LocalSettings.php,creating unique settings..." |
| 213 | + localsettings(name) |
| 214 | + uniquesettings(name) |
| 215 | + print "Copy logo..." |
| 216 | + logo(name) |
| 217 | + print "Setting up database..." |
| 218 | + makedb(name) |
| 219 | + if settings.run_automated_tests: |
| 220 | + print "Storing comparison data for check_isolation" |
| 221 | + difftests(name) |
| 222 | + print "Done." |
| 223 | + |
| 224 | + |
| 225 | +def uninstall(target): |
| 226 | + """implements uninstall command: uninstall mediawiki version""" |
| 227 | + |
| 228 | + target=clean_target(target) |
| 229 | + |
| 230 | + if target not in installed(): |
| 231 | + print target+": can't find an installed revision by that name" |
| 232 | + return |
| 233 | + |
| 234 | + #Ok, looks like our arguments are valid. |
| 235 | + os.chdir(settings.instancesdir) |
| 236 | + print "Dropping database..." |
| 237 | + dropdb(target) |
| 238 | + print "Deleting directory..." |
| 239 | + delete(target) |
| 240 | + print "Done." |
| 241 | + |
| 242 | +def checkout(target, name, revision): |
| 243 | + """checkout the given target revision""" |
| 244 | + |
| 245 | + command="svn checkout " |
| 246 | + if revision: |
| 247 | + command+="-r"+str(revision)+" " |
| 248 | + command+=settings.tagsdir+"/"+target+"phase3" |
| 249 | + _checkout(command,name) |
| 250 | + |
| 251 | +def checkout_latest(name, revision): |
| 252 | + """checkout the latest trunk revision""" |
| 253 | + |
| 254 | + command="svn checkout " |
| 255 | + if revision: |
| 256 | + command+="-r"+str(revision)+" " |
| 257 | + command+=settings.trunkdir+"/phase3" |
| 258 | + _checkout(command,name) |
| 259 | + |
| 260 | +def _checkout(command, name): |
| 261 | + """perform the actual check out, and rename our checked out data to something more useful""" |
| 262 | + |
| 263 | + os.system(command) |
| 264 | + os.rename('phase3',name) |
| 265 | + |
| 266 | + |
| 267 | +def localsettings(target): |
| 268 | + """Copy over our LocalSettings.php , and create InstallerUniqueSettings.php |
| 269 | + (which contains settings unique to this instance), and create LocalSettings dir. |
| 270 | + LocalSettings.php is the main configuration file for mediawiki.""" |
| 271 | + |
| 272 | + here=settings.installerdir+"/LocalSettings.php" |
| 273 | + instancedir=settings.instancesdir+"/"+target |
| 274 | + there=instancedir+"/LocalSettings.php" |
| 275 | + shutil.copy2(here,there) |
| 276 | + subdir=os.path.join(settings.revisionsdir,target,"LocalSettings") |
| 277 | + os.mkdir(subdir) |
| 278 | + |
| 279 | +def uniquesettings(target): |
| 280 | + uniquesettings=settings.instancesdir+"/"+target+"/InstallerUniqueSettings.php" |
| 281 | + unique=file(uniquesettings,"w") |
| 282 | + unique.write('<?php\n') |
| 283 | + unique.write('$wgSitename = "'+target+'";\n') |
| 284 | + unique.write('$wgScriptPath = "'+settings.base_scriptpath+target+'";\n') |
| 285 | + unique.write('$wgDBname = "'+target+'";\n') |
| 286 | + unique.write('?>\n') |
| 287 | + |
| 288 | + unique.close() |
| 289 | + |
| 290 | + |
| 291 | +def logo(target): |
| 292 | + """copy a nice logo""" |
| 293 | + |
| 294 | + logo=settings.installerdir+"/Logo.png" |
| 295 | + dest=settings.instancesdir+"/"+target+"/Logo.png" |
| 296 | + shutil.copy(logo,dest) |
| 297 | + |
| 298 | +def makedb(target): |
| 299 | + """make a mediawiki database for target mediawiki instance """ |
| 300 | + |
| 301 | + dropdb(target); |
| 302 | + createdb(target); |
| 303 | + make_tables(target) |
| 304 | + make_admin(target) |
| 305 | + |
| 306 | +def make_tables(target): |
| 307 | + """use the maintenance/tables.sql file provided by target mediawiki |
| 308 | + instance to generate our tables""" |
| 309 | + |
| 310 | + target_file=settings.instancesdir+"/"+target+"/maintenance/tables.sql" |
| 311 | + do_sql(target, target_file) |
| 312 | + |
| 313 | +def make_admin(target): |
| 314 | + """create an admin user using createAndPromote.php""" |
| 315 | + #do_sql(target, settings.installerdir+"/user.sql") |
| 316 | + phpfile=os.path.join(settings.instancesdir,target,"maintenance","createAndPromote.php") |
| 317 | + command="php "+phpfile+" --bureaucrat "+settings.adminuser_name+" "+settings.adminuser_password |
| 318 | + os.system(command) |
| 319 | + |
| 320 | +def dumpdb(target,outfile): |
| 321 | + command=settings.mysqldump_command+" "+target+" > "+outfile |
| 322 | + os.system(command) |
| 323 | + |
| 324 | +def do_sql(target, infile): |
| 325 | + """execute an sql file, using mysql""" |
| 326 | + |
| 327 | + command="< "+infile+" "+settings.mysql_command+" "+target |
| 328 | + os.system(command) |
| 329 | + |
| 330 | +def createdb(target): |
| 331 | + """create a database using mysql""" |
| 332 | + |
| 333 | + command="echo 'CREATE DATABASE "+target+";' | "+settings.mysql_command |
| 334 | + os.system(command) |
| 335 | + |
| 336 | +def dropdb(target): |
| 337 | + """drop a database using mysql""" |
| 338 | + |
| 339 | + command="echo 'DROP DATABASE IF EXISTS "+target+";' | "+settings.mysql_command |
| 340 | + os.system(command) |
| 341 | + |
| 342 | +def delete(target): |
| 343 | + """delete target mediawiki installation, assumes we are in the revisions directory""" |
| 344 | + shutil.rmtree(target) |
| 345 | + |
Property changes on: trunk/testing/installer/mediawiki_installer.py |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 346 | + native |
Index: trunk/testing/installer/installers.py |
— | — | @@ -0,0 +1,453 @@ |
| 2 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 3 | +# This software is developed by Kim Bruning. |
| 4 | +# |
| 5 | +# Distributed under the terms of the MIT license. |
| 6 | + |
| 7 | +# Back end code to deal with paths and to delegate |
| 8 | +#tasks to relevant installation systems |
| 9 | + |
| 10 | + |
| 11 | +import settings_handler as settings |
| 12 | +import os, os.path, shutil |
| 13 | +import subprocess |
| 14 | +import installer_util |
| 15 | + |
| 16 | +#from installation_system import Installation_System |
| 17 | +from toolkit_installer import Toolkit_Installer |
| 18 | +from scripted_installer import Scripted_Installer |
| 19 | +from mediawiki_installer import Mediawiki_Installer |
| 20 | +from naive_installer import Naive_Installer |
| 21 | +from installation_system import Installer_Exception |
| 22 | +from download_installer import Download_Installer |
| 23 | +from extension_installer2 import extension_installer2 |
| 24 | + |
| 25 | +from tags import Tags, TagsException |
| 26 | + |
| 27 | +class Parse_Exception(Exception): |
| 28 | + pass |
| 29 | + |
| 30 | +class Listing_Exception(Exception): |
| 31 | + pass |
| 32 | + |
| 33 | +def ls(args): |
| 34 | + if len(args)==0: |
| 35 | + print "Internal error: args list too short" |
| 36 | + return |
| 37 | + if len(args)<=1: |
| 38 | + args.append("") |
| 39 | + |
| 40 | + ppath=None |
| 41 | + try: |
| 42 | + ppath=parse_path(" ".join(args[1:])) |
| 43 | + except Parse_Exception,e: |
| 44 | + print e.message |
| 45 | + return |
| 46 | + |
| 47 | + try: |
| 48 | + if ppath['ai']=='available': |
| 49 | + output=ls_available(ppath) |
| 50 | + elif ppath['ai']=='revisions': |
| 51 | + output=ls_revisions(ppath) |
| 52 | + elif ppath['ai']=='tags': |
| 53 | + output=ls_tags(ppath) |
| 54 | + elif ppath['ai']=='installed' or ppath['ai']==None: # XXX hardcoded default |
| 55 | + output=ls_installed(ppath) |
| 56 | + except Listing_Exception,e: |
| 57 | + print e.message |
| 58 | + return |
| 59 | + |
| 60 | + if output==None: |
| 61 | + return |
| 62 | + |
| 63 | + if ppath['limit']: |
| 64 | + output=output[0:ppath['limit']] |
| 65 | + print installer_util.pretty_list(output) |
| 66 | + |
| 67 | +def ls_available(ppath): |
| 68 | + if ppath["system"]==None: |
| 69 | + return ls_systems() |
| 70 | + else: |
| 71 | + return ls_available_in_system(ppath) |
| 72 | + |
| 73 | +def ls_installed(ppath): |
| 74 | + if ppath["system"]==None: |
| 75 | + if ppath["installer"]==None: |
| 76 | + return ls_systems() |
| 77 | + else: |
| 78 | + ppath["system"]="mediawiki" # XXX hardcoded default |
| 79 | + |
| 80 | + return ls_installed_in_system(ppath) |
| 81 | + |
| 82 | +def ls_systems(): |
| 83 | + return [item+':' for item in systems.keys()] |
| 84 | + |
| 85 | + |
| 86 | +def ls_available_in_system(ppath): |
| 87 | + system=get_system(ppath["system"]) |
| 88 | + if not system: |
| 89 | + return |
| 90 | + return system.get_installers() |
| 91 | + |
| 92 | +def ls_installed_in_system(ppath): |
| 93 | + system=get_system(ppath["system"]) |
| 94 | + if not system: |
| 95 | + return |
| 96 | + |
| 97 | + if ppath["in_installer"]: |
| 98 | + system.set_instance(ppath["in_installer"]) |
| 99 | + installed=None |
| 100 | + try: |
| 101 | + installed=system.get_installed() |
| 102 | + except Installer_Exception,e: |
| 103 | + print e.message |
| 104 | + return |
| 105 | + |
| 106 | + return installed |
| 107 | + |
| 108 | +def ls_revisions(ppath): |
| 109 | + if not ppath["system"]: |
| 110 | + raise Listing_Exception("What system would you like me to list?") |
| 111 | + |
| 112 | + system=get_system(ppath["system"]) |
| 113 | + |
| 114 | + revisions=None |
| 115 | + try: |
| 116 | + revisions=system.get_revisions(ppath["installer"]) |
| 117 | + except Installer_Exception, e: |
| 118 | + raise Listing_Exception(e.message) |
| 119 | + |
| 120 | + return revisions |
| 121 | + |
| 122 | + |
| 123 | +def ls_tags(ppath): |
| 124 | + |
| 125 | + system=get_system(ppath["system"]) |
| 126 | + try: |
| 127 | + tags=system.get_tags(ppath["installer"]) |
| 128 | + except TagsException, e: |
| 129 | + raise Listing_Exception(e.message) |
| 130 | + |
| 131 | + return tags |
| 132 | + |
| 133 | +def info(args): |
| 134 | + if len(args)<1: |
| 135 | + print "info: Internal error: expected more arguments" |
| 136 | + |
| 137 | + ppath=None |
| 138 | + try: |
| 139 | + ppath=parse_path(" ".join(args[1:]),defaults={'ai':'available'}) |
| 140 | + except Parse_Exception,e: |
| 141 | + print e.message |
| 142 | + return |
| 143 | + |
| 144 | + if not ppath["ai"]: |
| 145 | + ppath["ai"]="available" |
| 146 | + |
| 147 | + system=get_system(ppath["system"]) |
| 148 | + system.get_info(ppath["installer"]) |
| 149 | + |
| 150 | + |
| 151 | +def duplicate(args): |
| 152 | + mw=get_system("mediawiki") |
| 153 | + try: |
| 154 | + mw.duplicate(args[1],args[2]) |
| 155 | + except Mediawiki_Installer_Exception,e: |
| 156 | + print e.message |
| 157 | + |
| 158 | + |
| 159 | +def install(args): |
| 160 | + if len(args)<1: |
| 161 | + print "install: Internal error: expected more arguments" |
| 162 | + |
| 163 | + ppath=None |
| 164 | + try: |
| 165 | + ppath=parse_path(" ".join(args[1:]), defaults={'ai':'available','system':'mediawiki'}) |
| 166 | + except Parse_Exception,e: |
| 167 | + print e.message |
| 168 | + return |
| 169 | + |
| 170 | + if ppath["ai"]=="installed": |
| 171 | + print "Did you mean to install from available. ?" |
| 172 | + return |
| 173 | + |
| 174 | + system=get_system(ppath["system"]) |
| 175 | + if ppath["in_installer"]: |
| 176 | + system.set_instance(ppath["in_installer"]) |
| 177 | + if ppath["as_alias"]: |
| 178 | + system.as_alias=ppath["as_alias"] |
| 179 | + if ppath["revision"]: |
| 180 | + system.revision=ppath["revision"] |
| 181 | + if ppath["tag"]: |
| 182 | + system.tag=ppath["tag"] |
| 183 | + |
| 184 | + try: |
| 185 | + success=system.install(ppath["installer"]) |
| 186 | + if success: |
| 187 | + print "Install successful." |
| 188 | + else: |
| 189 | + print "Install failed." |
| 190 | + |
| 191 | + except Installer_Exception,e: |
| 192 | + print e.message |
| 193 | + |
| 194 | + |
| 195 | +def uninstall(args): |
| 196 | + if len(args)<1: |
| 197 | + print "install: Internal error: expected more arguments" |
| 198 | + |
| 199 | + ppath=None |
| 200 | + try: |
| 201 | + ppath=parse_path(" ".join(args[1:]),defaults={'ai':'installed','system':'mediawiki'}) |
| 202 | + except Parse_Exception,e: |
| 203 | + print e.message |
| 204 | + return |
| 205 | + |
| 206 | + if ppath["ai"]=="available": |
| 207 | + print "Did you mean to uninstall from installed. ?" |
| 208 | + return |
| 209 | + |
| 210 | + system=get_system(ppath["system"]) |
| 211 | + if ppath["in_installer"]: |
| 212 | + system.set_instance(ppath["in_installer"]) |
| 213 | + if ppath["as_alias"]: |
| 214 | + system.as_alias=ppath["as_alias"] |
| 215 | + try: |
| 216 | + success=system.uninstall(ppath["installer"]) |
| 217 | + if success: |
| 218 | + print "Uninstall successful." |
| 219 | + else: |
| 220 | + print "Uninstall failed." |
| 221 | + except Installer_Exception,e: |
| 222 | + print e.message |
| 223 | + return |
| 224 | + |
| 225 | + |
| 226 | +def _ppath_defaults(ppath,defaults): |
| 227 | + """take a parse path, and fill in empty spots with |
| 228 | + default values. |
| 229 | + see: parse_path""" |
| 230 | + for key in ppath.keys(): |
| 231 | + if key in defaults: |
| 232 | + ppath[key]=ppath[key] or defaults[key] |
| 233 | + |
| 234 | + |
| 235 | +def _ppath_find(l,keyword): |
| 236 | + """ |
| 237 | + refactor of parse_path. Take l=inpath.split(), |
| 238 | + and see if the keyword exists in that list |
| 239 | + if exists, return the value following the keyword |
| 240 | + if not exists, nothing happens |
| 241 | + if keyword exists but no value is provided, throw exception |
| 242 | + see: parse_path""" |
| 243 | + if keyword in l: |
| 244 | + i=l.index(keyword) |
| 245 | + try: |
| 246 | + value=l[i+1] |
| 247 | + except IndexError: |
| 248 | + raise Parse_Exception("Syntax error. Nothing after '"+keyword+"'.") |
| 249 | + |
| 250 | + return value |
| 251 | + |
| 252 | +def parse_path(path,defaults=None): |
| 253 | + ai=None # available, installed (and now revisions and tags and test too) |
| 254 | + system=None # installation system |
| 255 | + installer=None # installer from that installation system |
| 256 | + in_installer=None # in which instance should we install? |
| 257 | + as_alias=None # if installing, as what name? |
| 258 | + revision=None # revision number, if any |
| 259 | + tag=None # tag, if any |
| 260 | + limit=None # limit output from list commands to n lines. |
| 261 | + |
| 262 | + #partial components |
| 263 | + whence=None # eg. 'available.mediawiki:' |
| 264 | + single_case=None # a single word or element, with insufficient context upfront to figure what it is |
| 265 | + inpath=None # eg. 'ImageMap in REL1_13_2" |
| 266 | + |
| 267 | + if ":" in path: |
| 268 | + # installed.extension: in foo |
| 269 | + #|-----whence--------|-inpath-| |
| 270 | + |
| 271 | + try: |
| 272 | + whence, inpath=path.split(':') |
| 273 | + except ValueError: |
| 274 | + raise Parse_Exception("You're doing something odd with ':'. I don't understand.") |
| 275 | + |
| 276 | + elif "." in path: |
| 277 | + #installed.extension |
| 278 | + whence=path |
| 279 | + else: |
| 280 | + # ? |
| 281 | + single_case=path |
| 282 | + |
| 283 | + # left side (whence) __________: |
| 284 | + if whence: |
| 285 | + if "." in whence: |
| 286 | + # installed.extension : ... |
| 287 | + #|---ai----|-system--| |
| 288 | + try: |
| 289 | + ai,system=whence.split('.') |
| 290 | + except ValueError: |
| 291 | + raise Parse_Exception("You're doing something odd with '.'. I don't understand.") |
| 292 | + else: |
| 293 | + # ? : ... |
| 294 | + single_case=whence |
| 295 | + |
| 296 | + # Hmmm, not a fully-formed path(-section). Perhaps we can still make heads or tails of it? |
| 297 | + if single_case: |
| 298 | + if single_case in systems.keys() or single_case=="hailmary": |
| 299 | + system=single_case |
| 300 | + elif single_case in ["available","installed", "revisions","tags"]: |
| 301 | + ai=single_case |
| 302 | + elif single_case==path: |
| 303 | + inpath=single_case |
| 304 | + else: |
| 305 | + raise Parse_Exception("I'm not sure what to do with '"+single_case+"' in this context.") |
| 306 | + |
| 307 | + # right side (inpath) :_______________ |
| 308 | + if inpath: |
| 309 | + l=inpath.split() |
| 310 | + if l[0] not in ['in', 'as', 'revision', 'tag','limit']: |
| 311 | + installer=l[0] |
| 312 | + |
| 313 | + in_installer=_ppath_find(l,"in") |
| 314 | + as_alias=_ppath_find(l,"as") |
| 315 | + revision=_ppath_find(l,"revision") |
| 316 | + tag=_ppath_find(l,'tag') |
| 317 | + try: |
| 318 | + limit=int(_ppath_find(l,'limit')) |
| 319 | + except Exception: |
| 320 | + pass |
| 321 | + |
| 322 | + # Ok, we have our basic return value now |
| 323 | + ppath={ |
| 324 | + "ai":ai, #available or installed |
| 325 | + "system":system, |
| 326 | + "installer":installer, |
| 327 | + "in_installer":in_installer, |
| 328 | + "as_alias":as_alias, |
| 329 | + "revision":revision, |
| 330 | + "tag":tag, |
| 331 | + "limit":limit} |
| 332 | + |
| 333 | + # maybe we can assume some useful defaults (saves typing) |
| 334 | + if defaults: |
| 335 | + _ppath_defaults(ppath,defaults) |
| 336 | + |
| 337 | + # let's check to see if what we get is sane. |
| 338 | + |
| 339 | + if ppath['ai'] not in ["available","installed","revisions","tags",None]: |
| 340 | + raise Parse_Exception("By '"+ppath['ai']+"', did you mean available, installed, revisions, or tags?") |
| 341 | + |
| 342 | + if ppath['system']=="hailmary": # easter egg |
| 343 | + ppath['system']='naive' # the naive installer was originally pitched as a |
| 344 | + # "hail mary" installer, as that's what it does, after all! ;-) |
| 345 | + |
| 346 | + if ppath['system'] not in systems.keys() and not ppath['system']=="None": |
| 347 | + system_names=", ".join(ls_systems()) |
| 348 | + raise Parse_Exception("Did you mean to specify any of "+system_names) |
| 349 | + |
| 350 | + # we assume that the "in" directive always applies to a mediawiki instance |
| 351 | + # NOTE:possibly this snippet of code should be in mediawiki_installer instead |
| 352 | + if ppath['in_installer']: |
| 353 | + mediawiki=get_system('mediawiki') |
| 354 | + if not mediawiki.is_installed(ppath['in_installer']): |
| 355 | + raise Parse_Exception(ppath['in_installer']+' is not currently installed') |
| 356 | + |
| 357 | + return ppath |
| 358 | + |
| 359 | + |
| 360 | + |
| 361 | +def get_system(system_name): |
| 362 | + """Factory method. Instantiates and returns the relevant installer for the given system_name""" |
| 363 | + if system_name not in systems: |
| 364 | + print "Cannot find '"+system_name+"' in the list of supported installation systems." |
| 365 | + return None |
| 366 | + else: |
| 367 | + sYstem=systems[system_name] |
| 368 | + |
| 369 | + return sYstem() |
| 370 | + |
| 371 | +# Constants |
| 372 | + |
| 373 | +systems={'toolkit':Toolkit_Installer,'scripted': Scripted_Installer, 'mediawiki':Mediawiki_Installer,'naive': Naive_Installer, 'download':Download_Installer, 'extension':extension_installer2} |
| 374 | + |
| 375 | + |
| 376 | +if __name__=="__main__": |
| 377 | + print "testing installers.py module" |
| 378 | + print "CTRL-C to abort. run installer.py to actually use the installer" |
| 379 | + print |
| 380 | +# print "ls" |
| 381 | +# ls2(["ls"]) |
| 382 | +# print |
| 383 | +# print "ls available" |
| 384 | +# ls2(["ls","available"]) |
| 385 | +# print |
| 386 | +# print "ls available/toolkit" |
| 387 | +# ls2(["ls","available/toolkit"]) |
| 388 | +# print |
| 389 | +# print "ls installed/toolkit" |
| 390 | +# ls2(["ls","installed/toolkit"]) |
| 391 | +# print |
| 392 | +# print "get info" |
| 393 | +# system=get_system("toolkit") |
| 394 | +# system.get_info("pywikipedia") |
| 395 | +# |
| 396 | +# print "install" |
| 397 | +# print "pywiki",repr(system.install("pywikipedia")) |
| 398 | +# print "exttest", repr(system.install("exttest")) |
| 399 | +# print "isolation", repr(system.install("check_isolation")) |
| 400 | +# print "ls", os.listdir('..') |
| 401 | +# |
| 402 | +# print "uninstall" |
| 403 | +# print "pywiki", repr(system.uninstall("pywikipedia")) |
| 404 | +# print "exttest", repr(system.uninstall("exttest")) |
| 405 | +# print "isolation", repr(system.uninstall("check_isolation")) |
| 406 | +# |
| 407 | +# print "extension (assumes existing wiki)" |
| 408 | +# extension_installer=Scripted_Installer("REL1_13_3") |
| 409 | +# |
| 410 | +# print " \ uninstall " , repr (extension_installer.uninstall("ImageMap")) |
| 411 | +# print "ImageMap", repr (extension_installer.install("ImageMap")) |
| 412 | +# |
| 413 | + #print "mediawiki installer" |
| 414 | + #print "avail" |
| 415 | + #ls2(["ls","available/mediawiki"]) |
| 416 | + #print "installed" |
| 417 | + #ls2(["ls","installed/mediawiki"]) |
| 418 | +# |
| 419 | +# print "try another wiki, say REL1_13_2" |
| 420 | + |
| 421 | +# mediawiki_installer=get_system("mediawiki") |
| 422 | +# |
| 423 | +# print "uninstl mediawiki 1_13_2", repr (mediawiki_installer.uninstall("REL1_13_2")) |
| 424 | +# print "install mediawiki 1_13_2", repr (mediawiki_installer.install("REL1_13_2")) |
| 425 | +# |
| 426 | +# print "extension (assumes existing wiki)" |
| 427 | +# extension_installer=Scripted_Installer("REL1_13_2") |
| 428 | +# |
| 429 | +# print " \ uninstall " , repr (extension_installer.uninstall("ImageMap")) |
| 430 | +# print "ImageMap", repr (extension_installer.install("ImageMap")) |
| 431 | +# |
| 432 | +# print "try some ls stuff" |
| 433 | +# def qls(mystr): # q for "quick" |
| 434 | +# print "ls", repr(mystr) |
| 435 | +# ls(['ls',mystr]) |
| 436 | +# |
| 437 | +# qls('') |
| 438 | +# qls('available') |
| 439 | +# qls('installed') |
| 440 | +# qls('available:') |
| 441 | +# qls('installed:') |
| 442 | +# qls('murp.morp:') |
| 443 | +# qls('installed.mediawiki:') |
| 444 | +# qls('installed.extension:') |
| 445 | +# qls('installed.toolkit:') |
| 446 | +# qls('installed.mediawiki:in REL1_13_2') |
| 447 | +# qls('available.extension:') |
| 448 | +# qls('installed.extension:in REL1_13_2') |
| 449 | +# qls('installed.extension:in FOO') |
| 450 | +# qls('installed.mediawiki:in FOO') |
| 451 | +# qls('available.toolkit') |
| 452 | +# qls('available.toolkit:in BAR as BAZ') |
| 453 | +# qls('available.toolkit:in BOG as BOT') |
| 454 | +# qls('available.toolkit:in BOG as BOT murp morp bla bla bla') |
Property changes on: trunk/testing/installer/installers.py |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 455 | + native |
Index: trunk/testing/installer/download_installer.py |
— | — | @@ -0,0 +1,77 @@ |
| 2 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 3 | +# This software is developed by Kim Bruning. |
| 4 | +# |
| 5 | +# Distributed under the terms of the MIT license. |
| 6 | + |
| 7 | +import settings_handler as settings |
| 8 | +import os, os.path, shutil |
| 9 | +import subprocess |
| 10 | + |
| 11 | +from extension_installer import Extension_Installer, Extension_Installer_Exception |
| 12 | + |
| 13 | +class Download_Installer_Exception(Extension_Installer_Exception): |
| 14 | + pass |
| 15 | + |
| 16 | +class Unsupported_Exception(Exception): |
| 17 | + pass |
| 18 | + |
| 19 | +class Download_Installer(Extension_Installer): |
| 20 | + """download an extension, do nothing else""" |
| 21 | + system_name='download' |
| 22 | + destination_dir=None |
| 23 | + |
| 24 | + def get_installers(self): |
| 25 | + l=list(os.popen('svn ls '+settings.extensionsdir)) |
| 26 | + # tidy l in place |
| 27 | + for i in range(len(l)): |
| 28 | + l[i]=l[i].strip() |
| 29 | + if l[i].endswith("/"): |
| 30 | + l[i]=l[i][:-1] |
| 31 | + return l |
| 32 | + #exists() ok. |
| 33 | + |
| 34 | + def installdir_name(): |
| 35 | + raise Unsupported_Exception("download installer does not use installdirs") |
| 36 | + |
| 37 | + def exec_task(): |
| 38 | + raise Unsupported_Exception("download installer does not use installdirs, and therefore also does not exec scripts in installdirs") |
| 39 | + |
| 40 | + def can_exec(self, installer_name, task): |
| 41 | + return False # we don't have an installdir, so we |
| 42 | + # can never exec a task. |
| 43 | + |
| 44 | + # get_installed: works ok. |
| 45 | + |
| 46 | + def is_installed(self, installer_name): |
| 47 | + if self.instance==None: |
| 48 | + raise Download_Installer_Exception("no instance specified ... did you try doing ... in <instance> ?") |
| 49 | + path=os.path.join(self.destination_dir,installer_name) |
| 50 | + return os.path.isdir(path) |
| 51 | + |
| 52 | + # get info will cause an exception to be raised |
| 53 | + # install: ok. |
| 54 | + |
| 55 | + def _download (self, installer_name, destination_dir): |
| 56 | + os.chdir(destination_dir) |
| 57 | + |
| 58 | + r='' |
| 59 | + if self.revision: |
| 60 | + r="-r "+str(self.revision) |
| 61 | + command="svn checkout "+\ |
| 62 | + r+" '"+\ |
| 63 | + self.get_extensionsdir()+"/"+\ |
| 64 | + installer_name+"'" |
| 65 | + #print command |
| 66 | + result=os.system(command) |
| 67 | + if result!=0: |
| 68 | + raise Installer_Exception("download failed, return value "+str(result>>8)) |
| 69 | + |
| 70 | + def _settings_filepath(self, installer_name): |
| 71 | + settingsdir=os.path.join(self.destination_dir,"../LocalSettings") |
| 72 | + filename=installer_name+".settings.php" |
| 73 | + filepath=os.path.join(settingsdir,filename) |
| 74 | + return filepath |
| 75 | + |
| 76 | + def _uninstall(self, installer_name, destination_dir): |
| 77 | + pathname=os.path.join(destination_dir, installer_name) |
| 78 | + shutil.rmtree(pathname,ignore_errors=True) |
Property changes on: trunk/testing/installer/download_installer.py |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 79 | + native |
Index: trunk/testing/installer/user.sql |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +INSERT INTO `user` VALUES (1,'Admin','',':B:29526fc8:111474e311dc91032803281b181d571b','',NULL,'','quickbar=1\nunderline=2\ncols=80\nrows=25\nsearchlimit=20\ncontextlines=5\ncontextchars=50\ndisablesuggest=0\nskin=\nmath=1\nusenewrc=0\nrcdays=7\nrclimit=50\nwllimit=250\nhideminor=0\nhighlightbroken=1\nstubthreshold=0\npreviewontop=1\npreviewonfirst=0\neditsection=1\neditsectiononrightclick=0\neditondblclick=0\neditwidth=0\nshowtoc=1\nshowtoolbar=1\nminordefault=0\ndate=default\nimagesize=2\nthumbsize=2\nrememberpassword=0\nenotifwatchlistpages=0\nenotifusertalkpages=1\nenotifminoredits=0\nenotifrevealaddr=0\nshownumberswatching=1\nfancysig=0\nexternaleditor=0\nexternaldiff=0\nshowjumplinks=1\nnumberheadings=0\nuselivepreview=0\nwatchlistdays=3\nextendwatchlist=0\nwatchlisthideminor=0\nwatchlisthidebots=0\nwatchlisthideown=0\nwatchcreations=0\nwatchdefault=0\nwatchmoves=0\nwatchdeletion=0\nnoconvertlink=0\nvariant=en\nlanguage=en\nsearchNs0=1','20081102094116','861f88b75764364721f25d7ffd44670e',NULL,'\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0',NULL,'20081102094111',0); |
| 3 | +INSERT INTO `user_groups` VALUES(1,'sysop'); |
| 4 | +INSERT INTO `user_groups` VALUES(1,'bureaucrat'); |
Property changes on: trunk/testing/installer/user.sql |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 5 | + native |
Index: trunk/testing/installer/util/allnaive.py |
— | — | @@ -0,0 +1,54 @@ |
| 2 | +#!/usr/bin/env python |
| 3 | +import sys |
| 4 | +import os, os.path |
| 5 | +sys.path.append("..") |
| 6 | +sys.path.append("../..") |
| 7 | +from naive_installer import Naive_Installer |
| 8 | + |
| 9 | + |
| 10 | +from exttest import settings |
| 11 | + |
| 12 | +# settings |
| 13 | +target_wiki='test' |
| 14 | +resultfile=file("naive_results","w") |
| 15 | + |
| 16 | +def do_test(): |
| 17 | + try: |
| 18 | + site=settings.target_login.login() |
| 19 | + ver=site.live_version() |
| 20 | + print isinstance(ver,list) |
| 21 | + if isinstance(ver,list): |
| 22 | + return True |
| 23 | + else: |
| 24 | + return False |
| 25 | + except Exception, e: |
| 26 | + return False |
| 27 | + # or, if in doubt |
| 28 | + return False # anyway |
| 29 | + |
| 30 | +def test_extension(extension_name): |
| 31 | + installer=Naive_Installer() |
| 32 | + installer.set_instance(target_wiki) |
| 33 | + installer.install(extension_name) |
| 34 | + result=do_test() |
| 35 | + print "result=",result |
| 36 | + installer.uninstall(extension_name) |
| 37 | + |
| 38 | + return result |
| 39 | + |
| 40 | +if __name__=="__main__": |
| 41 | + installer=Naive_Installer() |
| 42 | + installer.set_instance(target_wiki) |
| 43 | + naive_extensions=installer.get_installers() |
| 44 | + for extension_name in naive_extensions: |
| 45 | + print extension_name, |
| 46 | + result=test_extension(extension_name) |
| 47 | + print result |
| 48 | + r="Unknown" |
| 49 | + if result: |
| 50 | + r="NAIVE_INSTALL_SEEMS_OK" |
| 51 | + else: |
| 52 | + r="NAIVE_INSTALL_BREAKS" |
| 53 | + resultfile.write("* "+extension_name+" "+r+"\n") |
| 54 | + resultfile.flush() |
| 55 | + resultfile.close() |
Property changes on: trunk/testing/installer/util/allnaive.py |
___________________________________________________________________ |
Added: svn:executable |
1 | 56 | + * |
Index: trunk/testing/installer/extension_installer.py |
— | — | @@ -0,0 +1,24 @@ |
| 2 | +import os |
| 3 | +import settings_handler as settings |
| 4 | +from installation_system import Installation_System, Installer_Exception |
| 5 | + |
| 6 | +class Extension_Installer_Exception(Installer_Exception): |
| 7 | + pass |
| 8 | + |
| 9 | + |
| 10 | +class Extension_Installer(Installation_System): |
| 11 | + system_name='extensions_generic' |
| 12 | + destination_dir=None |
| 13 | + |
| 14 | + def set_instance(self,instance): |
| 15 | + self.destination_dir=os.path.join(settings.instancesdir,instance,"extensions") |
| 16 | + Installation_System.set_instance(self,instance) |
| 17 | + |
| 18 | + def is_installed(self, installer_name): |
| 19 | + if self.instance==None: |
| 20 | + raise Extension_Installer_Exception("no instance specified ... did you try doing ... in <instance> ?") |
| 21 | + return Installation_System.is_installed(self, installer_name) |
| 22 | + |
| 23 | + |
| 24 | + def get_svnbase(self): |
| 25 | + return settings.extensionsdir |
Property changes on: trunk/testing/installer/extension_installer.py |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 26 | + native |
Index: trunk/testing/installer/scripted_installer.py |
— | — | @@ -0,0 +1,55 @@ |
| 2 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 3 | +# This software is developed by Kim Bruning. |
| 4 | +# |
| 5 | +# Distributed under the terms of the MIT license. |
| 6 | + |
| 7 | +import settings_handler as settings |
| 8 | +import os, os.path, shutil |
| 9 | +import subprocess |
| 10 | + |
| 11 | +from mediawiki_installer import dbname |
| 12 | +from extension_installer import Extension_Installer, Extension_Installer_Exception |
| 13 | + |
| 14 | +class Scripted_Installer_Exception (Extension_Installer_Exception): |
| 15 | + pass |
| 16 | + |
| 17 | + |
| 18 | +class Scripted_Installer(Extension_Installer): |
| 19 | + |
| 20 | + def __init__(self,instance=None): |
| 21 | + Extension_Installer.__init__(self,instance) |
| 22 | + self.subsystemdir=os.path.join(settings.installfiles,"extensions") |
| 23 | + |
| 24 | + system_name="scripted" |
| 25 | + def install_settings(self, installer_name): |
| 26 | + installdir=self.installdir_name(installer_name) |
| 27 | + settingsdir=os.path.join(self.destination_dir,"../LocalSettings") |
| 28 | + dirlist=os.listdir(installdir) |
| 29 | + for filename in dirlist: |
| 30 | + filepath=os.path.join(installdir,filename) |
| 31 | + if filename.endswith('.settings.php') and os.access(filepath, os.R_OK): |
| 32 | + shutil.copy(filepath,settingsdir) |
| 33 | + |
| 34 | + def uninstall_settings(self,installer_name): |
| 35 | + settingsdir=os.path.join(self.destination_dir,"..","LocalSettings") |
| 36 | + installdir=self.installdir_name(installer_name) |
| 37 | + dirlist=os.listdir(installdir) |
| 38 | + #compare which files were originally installed, then remove those |
| 39 | + for filename in dirlist: |
| 40 | + filepath=os.path.join(installdir,filename) |
| 41 | + if filename.endswith('.settings.php') and os.access(filepath, os.R_OK): |
| 42 | + destpath=os.path.join(settingsdir,filename) |
| 43 | + if os.access(destpath, os.R_OK): |
| 44 | + os.unlink(destpath) |
| 45 | + |
| 46 | + def exec_task(self,installer_name,task,env=None): |
| 47 | + if env==None: |
| 48 | + env={} |
| 49 | + |
| 50 | + env=dict(env) |
| 51 | + env["EXTENSIONS_SVN"]=self.get_extensionsdir() |
| 52 | + env["DATABASE_NAME"]=dbname(self.instance) |
| 53 | + env["IN_INSTANCE"]=self.instance |
| 54 | + |
| 55 | + return Extension_Installer.exec_task(self, installer_name,task,env) |
| 56 | + |
Index: trunk/testing/installer/getch.py |
— | — | @@ -0,0 +1,43 @@ |
| 2 | +# getch, from http://code.activestate.com/recipes/134892/ |
| 3 | +# Gets a single character from standard input. Does not echo to the |
| 4 | +# screen. |
| 5 | + |
| 6 | +class _Getch: |
| 7 | + """Gets a single character from standard input. Does not echo to the |
| 8 | +screen.""" |
| 9 | + def __init__(self): |
| 10 | + try: |
| 11 | + self.impl = _GetchWindows() |
| 12 | + except ImportError: |
| 13 | + self.impl = _GetchUnix() |
| 14 | + |
| 15 | + def __call__(self): return self.impl() |
| 16 | + |
| 17 | + |
| 18 | +class _GetchUnix: |
| 19 | + def __init__(self): |
| 20 | + import tty, sys |
| 21 | + |
| 22 | + def __call__(self): |
| 23 | + import sys, tty, termios |
| 24 | + fd = sys.stdin.fileno() |
| 25 | + old_settings = termios.tcgetattr(fd) |
| 26 | + try: |
| 27 | + tty.setraw(sys.stdin.fileno()) |
| 28 | + ch = sys.stdin.read(1) |
| 29 | + finally: |
| 30 | + termios.tcsetattr(fd, termios.TCSADRAIN, old_settings) |
| 31 | + return ch |
| 32 | + |
| 33 | + |
| 34 | +class _GetchWindows: |
| 35 | + def __init__(self): |
| 36 | + import msvcrt |
| 37 | + |
| 38 | + def __call__(self): |
| 39 | + import msvcrt |
| 40 | + return msvcrt.getch() |
| 41 | + |
| 42 | + |
| 43 | +getch = _Getch() |
| 44 | + |
Index: trunk/testing/installer/installer_util.py |
— | — | @@ -0,0 +1,199 @@ |
| 2 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 3 | +# Copyright (C) 2009 Kim Bruning |
| 4 | + |
| 5 | +# Distributed under the terms of the MIT license. |
| 6 | + |
| 7 | +import sys, os |
| 8 | +import settings_handler as settings |
| 9 | + |
| 10 | +def replace_generic(replacements,infilename,outfilename): |
| 11 | + """generic replace function, takes a dictionary of search/replace |
| 12 | + strings (replacements), and applies them to the input file |
| 13 | + specified by infilename, and saves the results to the |
| 14 | + output file at outfilename""" |
| 15 | + |
| 16 | + infile=file(infilename) |
| 17 | + outfile=file(outfilename,"w") |
| 18 | + for line in infile: |
| 19 | + for search,replace in replacements.iteritems(): |
| 20 | + line=line.replace(search,replace) |
| 21 | + outfile.write(line) |
| 22 | + outfile.close() |
| 23 | + infile.close() |
| 24 | + |
| 25 | + |
| 26 | +def help(args): |
| 27 | + """implement help command: prints helpful messages""" |
| 28 | + |
| 29 | + if len(args)>1 and args[1] in subhelp: |
| 30 | + print |
| 31 | + print subhelp[args[1]] |
| 32 | + elif len(args)<=1: |
| 33 | + print |
| 34 | + print "installer, interactive mode" |
| 35 | + print "help: get help" |
| 36 | + print "quit, exit: quit" |
| 37 | + print "ls <path>: list information on available versions " |
| 38 | + print "install <path>: installs the version specified" |
| 39 | + print "install <path> as <name>: installs the version specified under an alternate name" |
| 40 | + print "uninstall <path>: uninstalls the version specified" |
| 41 | + print "check_isolation <instance name>: shows all changes made to mediawiki or database since it was installed." |
| 42 | + print "update_self: updates the installer and restarts in interactive mode" |
| 43 | + print "update_tags: manually force an update of the tag cache (do this from time to time, if you're referring to things by tag)" |
| 44 | + print "duplicate <source_instance> <destination_instance> make a duplicate mediawiki instance, with copies of configuration, database, and extensions" |
| 45 | + print "TODO: Implement help path , for now, see documentation for info on how to specify <path>" |
| 46 | + print |
| 47 | + print "instead of interactive mode, you can also access commands directly from the shell:" |
| 48 | + print "installer command [args]..." |
| 49 | + else: |
| 50 | + print 'no detailed help available' |
| 51 | + |
| 52 | + |
| 53 | + |
| 54 | +def revision(): |
| 55 | + """obtain revision number for installer itself""" |
| 56 | + |
| 57 | + revision_string=None |
| 58 | + os.chdir(settings.installerdir) |
| 59 | + info=os.popen("svn info .") |
| 60 | + for line in info: |
| 61 | + if line.startswith("Revision:"): |
| 62 | + revision_string=line.strip() |
| 63 | + break |
| 64 | + info.close() |
| 65 | + if revision_string==None: |
| 66 | + revision="unknown" |
| 67 | + else: |
| 68 | + revision=revision_string.replace("Revision:","") |
| 69 | + |
| 70 | + return revision |
| 71 | + |
| 72 | +def intro(): |
| 73 | + """a nice banner/intro text for interactive mode""" |
| 74 | + |
| 75 | + print "=== Installer (v. "+revision()+") ===" |
| 76 | + print |
| 77 | + print "(last known safe version: 48528)" |
| 78 | + print "Interactive mode.", |
| 79 | + print "Automated testing is", |
| 80 | + if settings.run_automated_tests: |
| 81 | + print "enabled." |
| 82 | + else: |
| 83 | + print "disabled." |
| 84 | + print |
| 85 | + print "Note: 'extension:' now means something else" |
| 86 | + print "if you want the old functionality: use 'scripted:'" |
| 87 | + print |
| 88 | + print "please type a command and hit enter" |
| 89 | + print "help<enter> for help" |
| 90 | + print "^D, exit<enter> or quit<enter> to quit" |
| 91 | + print |
| 92 | + |
| 93 | +def help_for(something): |
| 94 | + """If the user types incorrect input, try to gently correct them""" |
| 95 | + |
| 96 | + print "correct syntax:" |
| 97 | + help(["help",something]) |
| 98 | + |
| 99 | +def quit(args): |
| 100 | + """Quits the program.""" |
| 101 | + sys.exit(0) |
| 102 | + |
| 103 | +def clean_target(target): |
| 104 | + """tidy up a target string, return in canonical form""" |
| 105 | + |
| 106 | + target=str(target) |
| 107 | + target=target.strip() |
| 108 | + if target.endswith('/'): |
| 109 | + target=target[:-1] |
| 110 | + |
| 111 | + return target |
| 112 | + |
| 113 | +def pretty_list(mylist,layout_width=None): |
| 114 | + """format a list into columns that fit the terminal, |
| 115 | + similar to gnu ls output.""" |
| 116 | + |
| 117 | + if not mylist: |
| 118 | + return "" |
| 119 | + |
| 120 | + if layout_width==None: |
| 121 | + layout_width=getTerminalSize()[0] |
| 122 | + |
| 123 | + |
| 124 | + if layout_width: |
| 125 | + #first find the widest item |
| 126 | + max_width=0 |
| 127 | + for item in mylist: |
| 128 | + width=len(item)+1 |
| 129 | + if width>max_width: |
| 130 | + max_width=width |
| 131 | + |
| 132 | + #now calculate |
| 133 | + columns=max( layout_width/max_width ,1) |
| 134 | + column_width=layout_width/columns-1 |
| 135 | + |
| 136 | + #and let's go |
| 137 | + text="" |
| 138 | + column=0 |
| 139 | + for item in mylist: |
| 140 | + text+=item |
| 141 | + text+=" "*(column_width-len(item)+1) |
| 142 | + column+=1 |
| 143 | + if column>=columns: |
| 144 | + text+="\n" |
| 145 | + column=0 |
| 146 | + else: |
| 147 | + #naive alternative in case we can't get a clear |
| 148 | + #idea of what terminal we're on. |
| 149 | + text="\n".join(mylist) |
| 150 | + |
| 151 | + return text |
| 152 | + |
| 153 | + |
| 154 | +def getTerminalSize(): |
| 155 | + """determine the size of the terminal we are running in (where available)""" |
| 156 | + def ioctl_GWINSZ(fd): |
| 157 | + try: |
| 158 | + import fcntl, termios, struct, os |
| 159 | + cr = struct.unpack('hh', fcntl.ioctl(fd, termios.TIOCGWINSZ, |
| 160 | + '1234')) |
| 161 | + except: |
| 162 | + return None |
| 163 | + return cr |
| 164 | + cr = ioctl_GWINSZ(0) or ioctl_GWINSZ(1) or ioctl_GWINSZ(2) |
| 165 | + if not cr: |
| 166 | + try: |
| 167 | + fd = os.open(os.ctermid(), os.O_RDONLY) |
| 168 | + cr = ioctl_GWINSZ(fd) |
| 169 | + os.close(fd) |
| 170 | + except: |
| 171 | + pass |
| 172 | + if not cr: |
| 173 | + try: |
| 174 | + cr = (env['LINES'], env['COLUMNS']) |
| 175 | + except: |
| 176 | + cr = (25, 80) |
| 177 | + return int(cr[1]), int(cr[0]) |
| 178 | + |
| 179 | +def isanint(value): |
| 180 | + """If value can be converted to int, return |
| 181 | + true, else return false""" |
| 182 | + try: |
| 183 | + num=int(value) |
| 184 | + except ValueError: |
| 185 | + return False |
| 186 | + return True |
| 187 | + |
| 188 | +if __name__=="__main__": |
| 189 | + print "some tests for the utils module" |
| 190 | + |
| 191 | + x=range(1000,200000,1512) |
| 192 | + x=[str(i) for i in x] |
| 193 | + print x |
| 194 | + print pretty_list(x) |
| 195 | + |
| 196 | + print "isanint(0)",isanint(0) |
| 197 | + print "isanint('22')",isanint('22') |
| 198 | + print "isanint('22.foo')",isanint('22.foo') |
| 199 | + print "isanint('foo.22')",isanint('foo.22') |
| 200 | + print "isanint('bar')",isanint('bar') |
Property changes on: trunk/testing/installer/installer_util.py |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 201 | + native |
Index: trunk/testing/installer/LICENSE |
— | — | @@ -0,0 +1,21 @@ |
| 2 | +This software, |
| 3 | +Copyright (C) 2008-2009 by Wikiation. (Developed by Kim Bruning) |
| 4 | +Copyright (C) 2009 by Kim Bruning |
| 5 | + |
| 6 | +Permission is hereby granted, free of charge, to any person obtaining a copy |
| 7 | +of this software and associated documentation files (the "Software"), to deal |
| 8 | +in the Software without restriction, including without limitation the rights to |
| 9 | +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies |
| 10 | +of the Software, and to permit persons to whom the Software is furnished to do |
| 11 | +so, subject to the following conditions: |
| 12 | + |
| 13 | +The above copyright notice and this permission notice shall be included in all |
| 14 | +copies or substantial portions of the Software. |
| 15 | + |
| 16 | +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| 17 | +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| 18 | +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
| 19 | +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
| 20 | +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
| 21 | +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
| 22 | +SOFTWARE. |
Property changes on: trunk/testing/installer/LICENSE |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 23 | + native |
Index: trunk/testing/installer/Logo.png |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes on: trunk/testing/installer/Logo.png |
___________________________________________________________________ |
Added: svn:mime-type |
2 | 24 | + application/octet-stream |
Index: trunk/testing/installer/combined_installer.py |
— | — | @@ -0,0 +1,183 @@ |
| 2 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 3 | +# This software is developed by Kim Bruning. |
| 4 | +# |
| 5 | +# Distributed under the terms of the MIT license. |
| 6 | + |
| 7 | + |
| 8 | +from installation_system import Installation_System, Installer_Exception |
| 9 | + |
| 10 | +class Combined_Installer_Exception(Installer_Exception): |
| 11 | + pass |
| 12 | + |
| 13 | +class Combined_Installer(Installation_System): |
| 14 | + """operate a whole list of installers at once. |
| 15 | + attempts to perform an action with each installer |
| 16 | + in list in turn, until one of them works""" |
| 17 | + system_name="combined" |
| 18 | + destination_dir=None |
| 19 | + systemlist=None |
| 20 | + |
| 21 | + def __init__(self, systemlist): |
| 22 | + """initialize with a list of pre-initialized |
| 23 | + installers |
| 24 | + """ |
| 25 | + Installation_System.__init__(self) |
| 26 | + self.systemlist=systemlist |
| 27 | + |
| 28 | + def set_instance(self,instance): |
| 29 | + """set instance on all items""" |
| 30 | + for system in self.systemlist: |
| 31 | + system.set_instance(instance) |
| 32 | + |
| 33 | + def get_installers(self): |
| 34 | + installers=set() |
| 35 | + for system in self.systemlist: |
| 36 | + try: |
| 37 | + installers.update(system.get_installers()) |
| 38 | + except Exception: |
| 39 | + pass |
| 40 | + |
| 41 | + installers2=list(installers) |
| 42 | + installers2.sort() |
| 43 | + return installers2 |
| 44 | + |
| 45 | + def get_revisions(self,installer_name): |
| 46 | + revisions=[] |
| 47 | + for system in self.systemlist: |
| 48 | + try: |
| 49 | + revisions=system.get_revisions(installer_name) |
| 50 | + except Exception: |
| 51 | + pass |
| 52 | + |
| 53 | + if revisions: |
| 54 | + break |
| 55 | + |
| 56 | + return revisions |
| 57 | + |
| 58 | + def get_tags(self, installer_name): |
| 59 | + tags=[] |
| 60 | + for system in self.systemlist: |
| 61 | + try: |
| 62 | + tags=system.get_tags(installer_name) |
| 63 | + except Exception: |
| 64 | + pass |
| 65 | + |
| 66 | + if tags: |
| 67 | + break |
| 68 | + |
| 69 | + return tags |
| 70 | + |
| 71 | + def get_svnbase(self): |
| 72 | + return None |
| 73 | + |
| 74 | + # exists: ok |
| 75 | + # installdir_name: unused |
| 76 | + |
| 77 | + def exec_task(self, installer_name, task, env=None): |
| 78 | + """try systems, if any system can_exec, we exec. |
| 79 | + short circuits: Only first system with capability |
| 80 | + will exec""" |
| 81 | + for system in self.systemlist: |
| 82 | + if system.can_exec(task): |
| 83 | + system.exec_task(installer_name, task, env) |
| 84 | + break |
| 85 | + |
| 86 | + |
| 87 | + def can_exec(self, installer_name, task): |
| 88 | + """reply if we can execute a task, (allows nested |
| 89 | + combined_installers, fwiw. Short circuits (stops |
| 90 | + trying once it finds one system that supports the task))""" |
| 91 | + for system in self.systemlist: |
| 92 | + if system.can_exec(self, installer_name, task): |
| 93 | + return True |
| 94 | + |
| 95 | + return False |
| 96 | + |
| 97 | + def get_installed(self): |
| 98 | + """return a list of installed items (items installed by all the installers)""" |
| 99 | + installers=set() |
| 100 | + for system in self.systemlist: |
| 101 | + try: |
| 102 | + installers.update(system.get_installed()) |
| 103 | + except Exception: |
| 104 | + pass |
| 105 | + |
| 106 | + installers2=list(installers) |
| 107 | + installers2.sort() |
| 108 | + return installers2 |
| 109 | + |
| 110 | + def is_installed(self,installer_name): |
| 111 | + """return true if any of the installers finds that the particular item is already installed. (short circuits)""" |
| 112 | + for system in self.systemlist: |
| 113 | + if system.is_installed(installer_name): |
| 114 | + return True |
| 115 | + |
| 116 | + def get_info(self, installer_name): |
| 117 | + """print out information about the target from the info file, short circuits""" |
| 118 | + for system in self.systemlist: |
| 119 | + ret=system.get_info() |
| 120 | + if ret: |
| 121 | + return ret |
| 122 | + return None |
| 123 | + |
| 124 | + def install(self, installer_name): |
| 125 | + """actually install something. Short circuits (Will try each installer, until success""" |
| 126 | + messages=[] |
| 127 | + for system in self.systemlist: |
| 128 | + try: |
| 129 | + if system.install(installer_name): |
| 130 | + return True |
| 131 | + except Exception,e: #TODO sometimes an installer may recognise that something CAN NOT be installed, in that case, we should stop trying. |
| 132 | + messages.append(system.system_name+": "+e.message) |
| 133 | + |
| 134 | + if messages: |
| 135 | + raise Combined_Installer_Exception ("\n".join(messages)) |
| 136 | + |
| 137 | + return False |
| 138 | + |
| 139 | + def setup(self, installer_name, destination_dir=None): |
| 140 | + raise Combined_Installer_Exception("Internal Error:Can't do setup from here") |
| 141 | + |
| 142 | + |
| 143 | + def download (self, installer_name, destination_dir=None): |
| 144 | + raise Combined_Installer_Exception("Internal Error:Can't do download from here") |
| 145 | + |
| 146 | + |
| 147 | + def install_settings(self,installer_name): |
| 148 | + raise Combined_Installer_Exception("Internal Error:Can't do download from here") |
| 149 | + |
| 150 | + |
| 151 | + def uninstall_settings(self,installer_name): |
| 152 | + raise Combined_Installer_Exception("Internal Error:Can't do download from here") |
| 153 | + |
| 154 | + def uninstall(self, installer_name): |
| 155 | + """actually uninstall something. Short circuits (Will try each installer, until success)""" |
| 156 | + |
| 157 | + messages=[] |
| 158 | + for system in self.systemlist: |
| 159 | + try: |
| 160 | + if system.uninstall(installer_name): |
| 161 | + return True |
| 162 | + except Exception,e: #TODO sometimes an installer may recognise that something CAN NOT be uninstalled, in that case, we should stop trying |
| 163 | + messages.append(system.system_name+": "+e.message) |
| 164 | + |
| 165 | + if messages: |
| 166 | + raise Combined_Installer_Exception ("\n".join(messages)) |
| 167 | + |
| 168 | + return False |
| 169 | + |
| 170 | + |
| 171 | + |
| 172 | + def get_extensionsdir(self): |
| 173 | + raise Combined_Installer_Exception("Internal Error:Can't do download from here") |
| 174 | + |
| 175 | + |
| 176 | + def __setattr__(self,name,value): |
| 177 | + """also set any attributes for subsystems |
| 178 | + we also set the same attribute locally. |
| 179 | + Be careful when reading back!""" |
| 180 | + self.__dict__[name]=value |
| 181 | + if self.systemlist: |
| 182 | + for system in self.systemlist: |
| 183 | + system.__setattr__(name,value) |
| 184 | + |
Index: trunk/testing/installer/installer.py |
— | — | @@ -0,0 +1,181 @@ |
| 2 | +#!/usr/bin/python |
| 3 | + |
| 4 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 5 | +# This software is developed by Kim Bruning. |
| 6 | +# |
| 7 | +# Distributed under the terms of the MIT license. |
| 8 | + |
| 9 | +# Automated Installation tool for mediawiki and extensions. |
| 10 | +# primarily inteded to be run in test environments, |
| 11 | +# where you quickly (and automatically) want to set up |
| 12 | +# and tear down mediawiki instances several times a minute |
| 13 | + |
| 14 | +# Ways to use: |
| 15 | +# * Interactive mode CLI to pick up how the system works |
| 16 | +# * Call from bash scripts |
| 17 | +# * import the relevant installer(s) directly in python, and use from there |
| 18 | + |
| 19 | +# This file: |
| 20 | +#* Main entry point for Interactive CLI mode, (call with no params) |
| 21 | +#* Main entry point for scriptable mode (call with relevant command as parameters) |
| 22 | + |
| 23 | +import sys,os, os.path |
| 24 | +import readline |
| 25 | +import re |
| 26 | +import shutil |
| 27 | +import settings_handler as settings |
| 28 | + |
| 29 | +import installers |
| 30 | + |
| 31 | +from installer_util import * |
| 32 | +from isolation import * |
| 33 | +from getch import getch |
| 34 | +from tags import Tags |
| 35 | + |
| 36 | + |
| 37 | +def command(): |
| 38 | + """handle the command line in interactive mode""" |
| 39 | + |
| 40 | + try: |
| 41 | + command=raw_input('installer > ').strip() |
| 42 | + except EOFError: |
| 43 | + print "quit" |
| 44 | + sys.exit(0) |
| 45 | + |
| 46 | + if command: |
| 47 | + args=command.split() |
| 48 | + do_command(args) |
| 49 | + |
| 50 | + return True |
| 51 | + |
| 52 | +def do_command(all_args): |
| 53 | + """execute a command. Command is expected as a list |
| 54 | + (like we get from str.split(), or from sys.args). |
| 55 | + all_args[0] is expected to be the command name. |
| 56 | + """ |
| 57 | + |
| 58 | + if all_args[0] in commands: |
| 59 | + commands[all_args[0]](all_args) |
| 60 | + else: |
| 61 | + print "I don't know how to '"+all_args[0]+"'." |
| 62 | + |
| 63 | +def ls(args): |
| 64 | + """implement local ls command, lists things we can install""" |
| 65 | + if len(args)<=1: |
| 66 | + print \ |
| 67 | +"""available.mediawiki: installed.mediawiki: |
| 68 | +available.toolkit: installed.toolkit: |
| 69 | +available.scripted: installed.scripted: } |
| 70 | +available.naive: installed.naive: } extensions |
| 71 | +available.download: installer.download: } |
| 72 | +""" |
| 73 | + return |
| 74 | + installers.ls(args) |
| 75 | + |
| 76 | +def info(args): |
| 77 | + """provide information on modules, where available""" |
| 78 | + installers.info(args) |
| 79 | + |
| 80 | +def install(args): |
| 81 | + """install something""" |
| 82 | + installers.install(args) |
| 83 | + |
| 84 | +def test(args): |
| 85 | + """test something""" |
| 86 | + installers.test(args) |
| 87 | + |
| 88 | + |
| 89 | +def duplicate(args): |
| 90 | + """duplicate an instance""" |
| 91 | + if len(args)!=3: |
| 92 | + print "syntax:\n duplicate source_instance destination_instance" |
| 93 | + installers.duplicate(args) |
| 94 | + |
| 95 | +def uninstall(args): |
| 96 | + """uninstall something""" |
| 97 | + installers.uninstall(args) |
| 98 | + |
| 99 | +def update_self(args): |
| 100 | + """update self to newest revision, (and switch to interactive mode)""" |
| 101 | + |
| 102 | + print "This could cause the installer to break. Are you sure? Y/N" |
| 103 | + answer=getch() |
| 104 | + if answer.upper()=="Y": |
| 105 | + print "Continuing..." |
| 106 | + else: |
| 107 | + print "You did not answer Y. I won't update." |
| 108 | + return |
| 109 | + |
| 110 | + os.chdir(settings.installerdir) |
| 111 | + if len(args)==1: |
| 112 | + os.system("svn update") |
| 113 | + elif len(args)>=2 and isanint(args[1]): |
| 114 | + os.system("svn update -r"+args[1]) |
| 115 | + elif len(args)>=2: |
| 116 | + print "I'm not sure what to do with "+ (" ".join(args[1:])) |
| 117 | + |
| 118 | + print "\n\n" |
| 119 | + print "installer update attempted/completed. Restarting" |
| 120 | + print "----------------------------------------------------------" |
| 121 | + print "\n\n" |
| 122 | + os.execl("/usr/bin/python","/usr/bin/python",__file__) |
| 123 | + |
| 124 | +def update_tags(args): |
| 125 | + """manually force update of the tag cache""" |
| 126 | + Tags.update_cache_file() |
| 127 | + |
| 128 | +def main(): |
| 129 | + """main function. start of execution when run from shell""" |
| 130 | + |
| 131 | + # if we have command line params, parse them and exit |
| 132 | + if len(sys.argv)>1: |
| 133 | + args=sys.argv[1:] |
| 134 | + do_command(args) |
| 135 | + exit() |
| 136 | + |
| 137 | + #else we'll run our own interactive CLI |
| 138 | + |
| 139 | + #readline |
| 140 | + histfile=os.path.join(os.environ["HOME"], ".installerhist") |
| 141 | + try: |
| 142 | + readline.read_history_file(histfile) |
| 143 | + except IOError: |
| 144 | + pass |
| 145 | + readline.parse_and_bind("tab: complete") |
| 146 | + |
| 147 | + import atexit |
| 148 | + atexit.register(readline.write_history_file, histfile) |
| 149 | + |
| 150 | + |
| 151 | + intro() |
| 152 | + # main loop. |
| 153 | + while(command()): |
| 154 | + pass |
| 155 | +#constants |
| 156 | + |
| 157 | +# bind commands to functions |
| 158 | +commands={ |
| 159 | + "help":help, |
| 160 | + "quit":quit, |
| 161 | + "exit":quit, |
| 162 | + "ls":ls, |
| 163 | + "install":install, |
| 164 | + "uninstall":uninstall, |
| 165 | + "info":info, |
| 166 | + "check_isolation":check_isolation, |
| 167 | + "update_self":update_self, |
| 168 | + "update_tags":update_tags, |
| 169 | + "duplicate":duplicate, |
| 170 | + "test":test |
| 171 | +} |
| 172 | + |
| 173 | +# additional help texts for some commands. |
| 174 | +subhelp={ |
| 175 | + "ls":"""ls installed : list currently installed items |
| 176 | +ls available : list items available""" |
| 177 | + |
| 178 | +} |
| 179 | + |
| 180 | +if __name__ == "__main__": |
| 181 | + main() |
| 182 | + |
Property changes on: trunk/testing/installer/installer.py |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 183 | + native |
Added: svn:executable |
2 | 184 | + |
Index: trunk/testing/installer/settings_handler.py |
— | — | @@ -0,0 +1,85 @@ |
| 2 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 3 | +# This software is developed by Kim Bruning. |
| 4 | +# |
| 5 | +# Distributed under the terms of the MIT license. |
| 6 | +# |
| 7 | +# ============================================================= |
| 8 | +# Default settings file. DO NOT EDIT (edit settings.py instead) |
| 9 | +# ============================================================= |
| 10 | + |
| 11 | +# Provides sane defauls and backwards compatibility for |
| 12 | +# settings.py. |
| 13 | + |
| 14 | +import os |
| 15 | + |
| 16 | +# "You Are Here" |
| 17 | +installerdir=os.path.dirname(os.path.abspath(__file__)) |
| 18 | + |
| 19 | +# where to find .install directories and the files contained therein |
| 20 | +installfiles=os.path.join(installerdir,'installfiles') |
| 21 | +testfiles=os.path.join(installerdir,'testfiles') |
| 22 | + |
| 23 | +# where do we store the _tagcache file |
| 24 | +tagcache=os.path.join(installerdir,"_tagcache") |
| 25 | + |
| 26 | +# where to find mediawiki tags and trunk on svn |
| 27 | +tagsdir="http://svn.wikimedia.org/svnroot/mediawiki/tags" |
| 28 | +trunkdir="http://svn.wikimedia.org/svnroot/mediawiki/trunk" |
| 29 | +# we could alternately/additionally take a tag version for extensions. (future) |
| 30 | +extensionssubdir="extensions" |
| 31 | +extensionsdir=trunkdir+"/"+extensionssubdir |
| 32 | + |
| 33 | +# where to install diverse revisions |
| 34 | +instancesdir='/var/www/revisions' |
| 35 | + |
| 36 | + |
| 37 | +# base scriptpath for every installation (ie, where to reach the above over the web) |
| 38 | +base_scriptpath="/revisions/" |
| 39 | + |
| 40 | +# where to install the toolkit |
| 41 | +toolkit_dir='/usr/local/testing' |
| 42 | + |
| 43 | + |
| 44 | +#where check_isolation can be found |
| 45 | +isolation_create=toolkit_dir+'/check_isolation/create_and_ul.sh' |
| 46 | +isolation_test=toolkit_dir+'/check_isolation/dl_and_check.sh' |
| 47 | +# run automated tests during installation |
| 48 | +# this is useful if you are in a testing environment. |
| 49 | +# If you are running production, you might want to leave |
| 50 | +# this set to False. |
| 51 | +run_automated_tests=False |
| 52 | + |
| 53 | +debug=False |
| 54 | + |
| 55 | +# initial user |
| 56 | +adminuser_name="admin" |
| 57 | +adminuser_password="admin1234" |
| 58 | + |
| 59 | +#mysql info |
| 60 | +mysql_user="root" |
| 61 | +mysql_pass="" |
| 62 | + |
| 63 | +# what mysql commands should be used. (Who us? Use horrible hacks?) |
| 64 | + |
| 65 | +userpart="" |
| 66 | +passpart="" |
| 67 | +if mysql_user: |
| 68 | + userpart="-u"+mysql_user |
| 69 | +if mysql_pass: |
| 70 | + passpart="-p"+mysql_pass |
| 71 | + |
| 72 | +mysql_arguments=" "+userpart+" "+passpart |
| 73 | + |
| 74 | +if not 'mysql_command' in globals(): |
| 75 | + mysql_command="mysql "+mysql_arguments |
| 76 | + |
| 77 | +if not 'mysqldump_command' in globals(): |
| 78 | + mysqldump_command="mysqldump "+mysql_arguments |
| 79 | + |
| 80 | +if os.path.exists(os.path.join(installerdir, 'settings.py')): |
| 81 | + from settings import * |
| 82 | + |
| 83 | +#legacy support (rename old variables, etc) |
| 84 | +if 'revisionsdir' in globals(): |
| 85 | + instancesdir=revisionsdir |
| 86 | + |
Index: trunk/testing/installer/tags.py |
— | — | @@ -0,0 +1,103 @@ |
| 2 | +import sys,os |
| 3 | +import os.path |
| 4 | +import settings_handler as settings |
| 5 | +import copy |
| 6 | +import cPickle as pickle |
| 7 | +import subprocess |
| 8 | + |
| 9 | +class TagsException(Exception): |
| 10 | + pass |
| 11 | + |
| 12 | +class Tags: |
| 13 | + """keep track of extension tags in svn. |
| 14 | + the current repository is not optimised for the kinds |
| 15 | + of queries the installer needs. We do the query once |
| 16 | + and cache it.""" |
| 17 | + |
| 18 | + def __init__(self): |
| 19 | + # try to load preexisting cache |
| 20 | + self.cache=self.load_cache() |
| 21 | + # No joy? Let's generate one. |
| 22 | + if not self.cache: |
| 23 | + self.cache=self.update_cache() |
| 24 | + # Still no joy? |
| 25 | + if not self.cache: |
| 26 | + raise Exception("Internal error: cannot obtain a tag cache") |
| 27 | + |
| 28 | + @classmethod |
| 29 | + def load_cache(self): |
| 30 | + """load tags from cache""" |
| 31 | + if not os.path.isfile(settings.tagcache): |
| 32 | + return None |
| 33 | + |
| 34 | + cache=pickle.load(file(settings.tagcache)) |
| 35 | + return cache |
| 36 | + |
| 37 | + @classmethod |
| 38 | + def svnlist(self,dir): |
| 39 | + """generic obtain data from svn ls |
| 40 | + (TODO: refactor, overlaps with DownloadInstaller get_installers)""" |
| 41 | + |
| 42 | + command=['svn','ls',dir] |
| 43 | + process=subprocess.Popen(command,stdout=subprocess.PIPE, stderr=subprocess.PIPE) |
| 44 | + failp=process.stderr.read() |
| 45 | + if failp: |
| 46 | + return None |
| 47 | + l=list(process.stdout) |
| 48 | + # tidy l in place |
| 49 | + for i in range(len(l)): |
| 50 | + l[i]=l[i].strip() |
| 51 | + if l[i].endswith("/"): |
| 52 | + l[i]=l[i][:-1] |
| 53 | + return l |
| 54 | + |
| 55 | + def update_cache(self): |
| 56 | + """update cache to disk and to memory""" |
| 57 | + self.cache=self.update_cache_file() |
| 58 | + return self.cache |
| 59 | + |
| 60 | + @classmethod |
| 61 | + def update_cache_file(self): |
| 62 | + """update cache to disk. returns a cache. This is an expensive operation. |
| 63 | + (cache format is {"extension name":["tag1", "tag2", "tag3", ...]}, ...) |
| 64 | + """ |
| 65 | + print "Updating tags cache, this takes a minute or so." |
| 66 | + print "(Items marked with '*' do not seem to contain extensions)" |
| 67 | + cache={} |
| 68 | + tags=self.svnlist(settings.tagsdir) |
| 69 | + for tag in tags: |
| 70 | + sys.stdout.write(tag) |
| 71 | + sys.stdout.flush() |
| 72 | + |
| 73 | + extensions=self.svnlist(settings.tagsdir+"/"+tag+"/"+settings.extensionssubdir) |
| 74 | + if extensions==None: |
| 75 | + extensions=[] |
| 76 | + sys.stdout.write('*') |
| 77 | + sys.stdout.flush() |
| 78 | + for extension in extensions: |
| 79 | + if extension not in cache: |
| 80 | + cache[extension]=[] |
| 81 | + cache[extension].append(tag) |
| 82 | + sys.stdout.write('; ') |
| 83 | + sys.stdout.flush() |
| 84 | + |
| 85 | + #store cache to disk |
| 86 | + pickle.dump(cache, file(settings.tagcache,"w"),pickle.HIGHEST_PROTOCOL) |
| 87 | + |
| 88 | + #make empty line |
| 89 | + print |
| 90 | + print "completed." |
| 91 | + return cache |
| 92 | + |
| 93 | + def gettags(self,extension): |
| 94 | + if extension not in self.cache: |
| 95 | + raise TagsException("Could not find extension "+str(extension)+".") |
| 96 | + |
| 97 | + tags=self.cache[extension] |
| 98 | + return copy.copy(tags) |
| 99 | + |
| 100 | +if __name__=="__main__": |
| 101 | + tags=Tags() |
| 102 | + print "Imagemap: ",tags.gettags("ImageMap") |
| 103 | + print "Cite: ", tags.gettags("Cite") |
| 104 | + |
Index: trunk/testing/installer/__init__.py |
Index: trunk/testing/installer/isolation.py |
— | — | @@ -0,0 +1,45 @@ |
| 2 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 3 | +# This software is developed by Kim Bruning. |
| 4 | +# |
| 5 | +# Distributed under the terms of the MIT license. |
| 6 | + |
| 7 | +import sys,os, os.path |
| 8 | +import settings_handler as settings |
| 9 | + |
| 10 | +#support for check_isolation |
| 11 | + |
| 12 | +def _check_isolation(args): |
| 13 | + """check_isolation: check diffs now""" |
| 14 | + difftest=settings.isolation_test |
| 15 | + command=difftest+" "+" ".join(args) |
| 16 | + exit_status=os.system(command)>>8 |
| 17 | + return exit_status==0 |
| 18 | + |
| 19 | +def check_isolation(args): |
| 20 | + """implement check_isolation command""" |
| 21 | + |
| 22 | + if len(args) < 2 : |
| 23 | + print "Must specify a target!\n(try: ls installed )" |
| 24 | + return |
| 25 | + target=args[1] |
| 26 | + if target not in installed(): |
| 27 | + print target+' is not currently installed' |
| 28 | + return |
| 29 | + |
| 30 | + return _check_isolation(args[1:]) |
| 31 | + |
| 32 | + |
| 33 | +def difftests(target): |
| 34 | + """check_isolation: store diffs, ready for testing later""" |
| 35 | + |
| 36 | + difftest=settings.isolation_create |
| 37 | + command=difftest+" "+target |
| 38 | + os.system(command) |
| 39 | + |
| 40 | +def installed(): |
| 41 | + """list installed items""" |
| 42 | + # XXX COPIED from mediawiki_installer.py |
| 43 | + #( Else we'd have a recursive import) |
| 44 | + return os.listdir(settings.instancesdir) |
| 45 | + |
| 46 | + |
Property changes on: trunk/testing/installer/isolation.py |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 47 | + native |
Index: trunk/testing/installer/installfiles/toolkit/util.install/download.sh |
— | — | @@ -0,0 +1,10 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="http://svn.wikimedia.org/svnroot/mediawiki/trunk/testing/util/" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
Property changes on: trunk/testing/installer/installfiles/toolkit/util.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 12 | + * |
Index: trunk/testing/installer/installfiles/toolkit/util.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR |
| 5 | +rm -rf util |
Property changes on: trunk/testing/installer/installfiles/toolkit/util.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Index: trunk/testing/installer/installfiles/toolkit/util.install/is_installed.sh |
— | — | @@ -0,0 +1,5 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | + |
| 5 | + |
| 6 | +test -d $DESTINATION_DIR/util && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/toolkit/util.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 7 | + * |
Index: trunk/testing/installer/installfiles/toolkit/util.install/info |
— | — | @@ -0,0 +1 @@ |
| 2 | +diverse utility scripts |
Index: trunk/testing/installer/installfiles/toolkit/check_isolation.install/info |
— | — | @@ -0,0 +1,7 @@ |
| 2 | +Required by the installer |
| 3 | +stores information about database and mediawiki files before installation or testing |
| 4 | +later diffs this information against the installed system to see if anything |
| 5 | +has changed. If something changes, you (might) have some interesting issues. |
| 6 | + |
| 7 | + |
| 8 | + |
Property changes on: trunk/testing/installer/installfiles/toolkit/check_isolation.install/info |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 9 | + native |
Index: trunk/testing/installer/installfiles/toolkit/check_isolation.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/check_isolation |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/toolkit/check_isolation.install/update.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 10 | + native |
Added: svn:executable |
2 | 11 | + |
Index: trunk/testing/installer/installfiles/toolkit/check_isolation.install/download.sh |
— | — | @@ -0,0 +1,10 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="http://svn.wikimedia.org/svnroot/mediawiki/trunk/testing/check_isolation/" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
Property changes on: trunk/testing/installer/installfiles/toolkit/check_isolation.install/download.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 12 | + native |
Added: svn:executable |
2 | 13 | + |
Index: trunk/testing/installer/installfiles/toolkit/check_isolation.install/uninstall.sh |
— | — | @@ -0,0 +1,5 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR |
| 5 | +rm -f test |
| 6 | +rm -rf check_isolation |
Property changes on: trunk/testing/installer/installfiles/toolkit/check_isolation.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 7 | + native |
Added: svn:executable |
2 | 8 | + |
Index: trunk/testing/installer/installfiles/toolkit/check_isolation.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/check_isolation && echo "true"|| echo "false" |
Property changes on: trunk/testing/installer/installfiles/toolkit/check_isolation.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 5 | + native |
Added: svn:executable |
2 | 6 | + |
Index: trunk/testing/installer/installfiles/toolkit/check_isolation.install/test.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +echo $hello_world |
Property changes on: trunk/testing/installer/installfiles/toolkit/check_isolation.install/test.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 5 | + native |
Property changes on: trunk/testing/installer/installfiles/toolkit/check_isolation.install |
___________________________________________________________________ |
Added: svn:mergeinfo |
Index: trunk/testing/installer/installfiles/toolkit/pywikipedia.install/info |
— | — | @@ -0,0 +1 @@ |
| 2 | +A version of pywikipedia suitable for exttest environments |
Property changes on: trunk/testing/installer/installfiles/toolkit/pywikipedia.install/info |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 3 | + native |
Index: trunk/testing/installer/installfiles/toolkit/pywikipedia.install/download.sh |
— | — | @@ -0,0 +1,5 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | + |
| 5 | +cd $DESTINATION_DIR |
| 6 | +svn checkout 'http://svn.wikimedia.org/svnroot/pywikipedia/trunk/pywikipedia/' |
Property changes on: trunk/testing/installer/installfiles/toolkit/pywikipedia.install/download.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 7 | + native |
Added: svn:executable |
2 | 8 | + |
Index: trunk/testing/installer/installfiles/toolkit/pywikipedia.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR |
| 5 | +rm -rf pywikipedia |
Property changes on: trunk/testing/installer/installfiles/toolkit/pywikipedia.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 6 | + native |
Added: svn:executable |
2 | 7 | + |
Index: trunk/testing/installer/installfiles/toolkit/pywikipedia.install/is_installed.sh |
— | — | @@ -0,0 +1,5 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | + |
| 5 | + |
| 6 | +test -d $DESTINATION_DIR/pywikipedia && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/toolkit/pywikipedia.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 7 | + native |
Added: svn:executable |
2 | 8 | + |
Index: trunk/testing/installer/installfiles/toolkit/exttest.install/info |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +imagemap: |
| 3 | +http://www.mediawiki.org/wiki/Extension:ImageMap |
Property changes on: trunk/testing/installer/installfiles/toolkit/exttest.install/info |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 4 | + native |
Index: trunk/testing/installer/installfiles/toolkit/exttest.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/toolkit/exttest.install/update.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 10 | + native |
Added: svn:executable |
2 | 11 | + |
Index: trunk/testing/installer/installfiles/toolkit/exttest.install/download.sh |
— | — | @@ -0,0 +1,10 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="http://svn.wikimedia.org/svnroot/mediawiki/trunk/testing/exttest/" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
Property changes on: trunk/testing/installer/installfiles/toolkit/exttest.install/download.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 12 | + native |
Added: svn:executable |
2 | 13 | + |
Index: trunk/testing/installer/installfiles/toolkit/exttest.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/toolkit/exttest.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 6 | + native |
Added: svn:executable |
2 | 7 | + |
Index: trunk/testing/installer/installfiles/toolkit/exttest.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/toolkit/exttest.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 5 | + native |
Added: svn:executable |
2 | 6 | + |
Index: trunk/testing/installer/installfiles/toolkit/exttest.install/ImageMap.settings.php |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/ImageMap/ImageMap.php"); |
| 5 | + |
| 6 | + |
| 7 | +?> |
Property changes on: trunk/testing/installer/installfiles/toolkit/exttest.install/ImageMap.settings.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 8 | + native |
Property changes on: trunk/testing/installer/installfiles/toolkit/exttest.install |
___________________________________________________________________ |
Added: svn:mergeinfo |
Property changes on: trunk/testing/installer/installfiles/toolkit |
___________________________________________________________________ |
Added: svn:mergeinfo |
Index: trunk/testing/installer/installfiles/extensions/LiquidThreads.install/download.sh |
— | — | @@ -0,0 +1,11 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
| 12 | + |
Property changes on: trunk/testing/installer/installfiles/extensions/LiquidThreads.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 13 | + * |
Added: eol:native |
2 | 14 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/LiquidThreads.install/uninstall.sh |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +$MYSQL_COMMAND $DATABASE_NAME < $INSTALL_DIR/lqt-uninstall.sql |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/LiquidThreads.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 8 | + * |
Added: eol:native |
2 | 9 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/LiquidThreads.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/LiquidThreads.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Added: eol:native |
2 | 6 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/LiquidThreads.install/lqt-uninstall.sql |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +DROP TABLE thread; |
| 3 | +DROP TABLE historical_thread; |
| 4 | +DROP TABLE user_message_state; |
\ No newline at end of file |
Property changes on: trunk/testing/installer/installfiles/extensions/LiquidThreads.install/lqt-uninstall.sql |
___________________________________________________________________ |
Added: eol:native |
1 | 5 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/LiquidThreads.install/LiquidThreads.settings.php |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +<?php |
| 3 | +require_once("$IP/extensions/LiquidThreads/LiquidThreads.php"); |
Property changes on: trunk/testing/installer/installfiles/extensions/LiquidThreads.install/LiquidThreads.settings.php |
___________________________________________________________________ |
Added: eol:native |
1 | 4 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/LiquidThreads.install/setup.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +$MYSQL_COMMAND $DATABASE_NAME < $DESTINATION_DIR/$NAME/lqt.sql |
Property changes on: trunk/testing/installer/installfiles/extensions/LiquidThreads.install/setup.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Index: trunk/testing/installer/installfiles/extensions/LiquidThreads.install/info |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +liquidthreads: |
| 3 | +http://www.mediawiki.org/wiki/Extension:LiquidThreads |
Property changes on: trunk/testing/installer/installfiles/extensions/LiquidThreads.install/info |
___________________________________________________________________ |
Added: eol:native |
1 | 4 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/LiquidThreads.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/LiquidThreads.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Added: eol:native |
2 | 11 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/HeaderTabs.install/HeaderTabs.settings.php |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/HeaderTabs/HeaderTabs.php"); |
| 5 | + |
| 6 | + |
| 7 | +?> |
Index: trunk/testing/installer/installfiles/extensions/HeaderTabs.install/info |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +HeaderTabs |
| 3 | +========== |
| 4 | +http://www.mediawiki.org/wiki/Extension:HeaderTabs |
Index: trunk/testing/installer/installfiles/extensions/HeaderTabs.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/HeaderTabs.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Index: trunk/testing/installer/installfiles/extensions/HeaderTabs.install/download.sh |
— | — | @@ -0,0 +1,13 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +#repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | + |
| 8 | +svn checkout http://mediawiki-header-tabs.googlecode.com/svn/trunk/ HeaderTabs |
| 9 | + |
| 10 | +#if test -n "$REVISION"; then |
| 11 | +# svn checkout -r $REVISION $repository |
| 12 | +#else |
| 13 | +# svn checkout $repository |
| 14 | +#fi |
Property changes on: trunk/testing/installer/installfiles/extensions/HeaderTabs.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 15 | + * |
Index: trunk/testing/installer/installfiles/extensions/HeaderTabs.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/HeaderTabs.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Index: trunk/testing/installer/installfiles/extensions/HeaderTabs.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/HeaderTabs.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Index: trunk/testing/installer/installfiles/extensions/Makesysop/Makesysop.settings.php |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/Makesysop/SpecialMakesysop.php"); |
| 5 | + |
| 6 | + |
| 7 | +?> |
Index: trunk/testing/installer/installfiles/extensions/Makesysop/download.sh |
— | — | @@ -0,0 +1,10 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/Makesysop/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 12 | + * |
Index: trunk/testing/installer/installfiles/extensions/Makesysop/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/Makesysop/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Index: trunk/testing/installer/installfiles/extensions/Makesysop/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/Makesysop/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Index: trunk/testing/installer/installfiles/extensions/Makesysop/info |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +Makesysop |
| 3 | +========= |
| 4 | +http://www.mediawiki.org/wiki/Extension:Makesysop |
Index: trunk/testing/installer/installfiles/extensions/Makesysop/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/Makesysop/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Index: trunk/testing/installer/installfiles/extensions/AutoCreateCategoryPages.install/AutoCreateCategoryPages.settings.php |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/uniwiki/AutoCreateCategoryPages/AutoCreateCategoryPages.php"); |
| 5 | + |
| 6 | + |
| 7 | +?> |
Property changes on: trunk/testing/installer/installfiles/extensions/AutoCreateCategoryPages.install/AutoCreateCategoryPages.settings.php |
___________________________________________________________________ |
Added: eol:native |
1 | 8 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/AutoCreateCategoryPages.install/download.sh |
— | — | @@ -0,0 +1,18 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/uniwiki/$NAME" |
| 5 | + |
| 6 | +if [ -d "$DESTINATION_DIR/uniwiki" ]; then |
| 7 | + echo "Directory exists" |
| 8 | +else |
| 9 | + mkdir "$DESTINATION_DIR/uniwiki" |
| 10 | + echo "Directory is created" |
| 11 | +fi |
| 12 | + |
| 13 | + |
| 14 | +cd $DESTINATION_DIR/uniwiki |
| 15 | +if test -n "$REVISION"; then |
| 16 | + svn checkout -r $REVISION $repository |
| 17 | +else |
| 18 | + svn checkout $repository |
| 19 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/AutoCreateCategoryPages.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 20 | + * |
Added: eol:native |
2 | 21 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/AutoCreateCategoryPages.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/uniwiki/ |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/AutoCreateCategoryPages.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Added: eol:native |
2 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/AutoCreateCategoryPages.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/uniwiki/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/AutoCreateCategoryPages.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Added: eol:native |
2 | 6 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/AutoCreateCategoryPages.install/info |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +CssHooks: |
| 3 | +http://www.mediawiki.org/wiki/Extension:AutoCreateCategoryPages |
| 4 | + |
Property changes on: trunk/testing/installer/installfiles/extensions/AutoCreateCategoryPages.install/info |
___________________________________________________________________ |
Added: eol:native |
1 | 5 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/AutoCreateCategoryPages.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/uniwiki/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/AutoCreateCategoryPages.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Added: eol:native |
2 | 11 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticForms.install/info |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +SemanticForms: |
| 3 | +http://semantic-mediawiki.org/wiki/Help:Semantic_Forms |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticForms.install/info |
___________________________________________________________________ |
Added: eol:native |
1 | 4 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticForms.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticForms.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Added: eol:native |
2 | 11 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticForms.install/SemanticForms.settings.php |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/SemanticMediaWiki/includes/SMW_Settings.php"); |
| 5 | + |
| 6 | +require_once("$IP/extensions/SemanticForms/includes/SF_Settings.php"); |
| 7 | + |
| 8 | + |
| 9 | +?> |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticForms.install/SemanticForms.settings.php |
___________________________________________________________________ |
Added: eol:native |
1 | 10 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticForms.install/download.sh |
— | — | @@ -0,0 +1,10 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticForms.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 12 | + * |
Added: eol:native |
2 | 13 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticForms.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticForms.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Added: eol:native |
2 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticForms.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticForms.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Added: eol:native |
2 | 6 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Oversight.install/setup.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +php maintenance/sql.php extensions/Oversight/hidden.sql |
Property changes on: trunk/testing/installer/installfiles/extensions/Oversight.install/setup.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Index: trunk/testing/installer/installfiles/extensions/Oversight.install/info |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +Oversight: |
| 3 | +http://www.mediawiki.org/wiki/Extension:Oversight |
Index: trunk/testing/installer/installfiles/extensions/Oversight.install/update.sh |
— | — | @@ -0,0 +1,9 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
| 10 | +php maintenance/SMW_setup.php |
Property changes on: trunk/testing/installer/installfiles/extensions/Oversight.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 11 | + * |
Index: trunk/testing/installer/installfiles/extensions/Oversight.install/Oversight.settings.php |
— | — | @@ -0,0 +1,7 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +include_once("$IP/extensions/Oversight/HideRevision.php"); |
| 5 | +$wgGroupPermissions['oversight']['hiderevision'] = true; |
| 6 | +$wgGroupPermissions['oversight']['oversight'] = true; |
| 7 | + |
| 8 | +?> |
Index: trunk/testing/installer/installfiles/extensions/Oversight.install/download.sh |
— | — | @@ -0,0 +1,10 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/Oversight.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 12 | + * |
Index: trunk/testing/installer/installfiles/extensions/Oversight.install/uninstall.sh |
— | — | @@ -0,0 +1,5 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +php $DESTINATION_DIR/$NAME/maintenance/SMW_setup.php --delete |
| 5 | +cd $DESTINATION_DIR |
| 6 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/Oversight.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 7 | + * |
Index: trunk/testing/installer/installfiles/extensions/Oversight.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/Oversight.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Index: trunk/testing/installer/installfiles/extensions/OggHandler.install/download.sh |
— | — | @@ -0,0 +1,10 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/OggHandler.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 12 | + * |
Index: trunk/testing/installer/installfiles/extensions/OggHandler.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/OggHandler.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Index: trunk/testing/installer/installfiles/extensions/OggHandler.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/OggHandler.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Index: trunk/testing/installer/installfiles/extensions/OggHandler.install/info |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +OggHandler |
| 3 | +========== |
| 4 | +http://www.mediawiki.org/wiki/Extension:OggHandler |
| 5 | + |
| 6 | +OggHandler is an extension which allows you to display Ogg audio and video files in wiki pages, |
| 7 | +using the same syntax as for image files. It also has limited support for metadata display on image description pages. |
Index: trunk/testing/installer/installfiles/extensions/OggHandler.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/OggHandler.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Index: trunk/testing/installer/installfiles/extensions/OggHandler.install/OggHandler.settings.php |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/OggHandler/OggHandler.php"); |
| 5 | +$wgFFmpegLocation = '/usr/bin/ffmpeg'; |
| 6 | + |
| 7 | +?> |
Index: trunk/testing/installer/installfiles/extensions/CheckUser.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/CheckUser.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Index: trunk/testing/installer/installfiles/extensions/CheckUser.install/setup.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +php $DESTINATION_DIR/$NAME/install.php |
| 5 | + |
Property changes on: trunk/testing/installer/installfiles/extensions/CheckUser.install/setup.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Index: trunk/testing/installer/installfiles/extensions/CheckUser.install/info |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +CheckUser: |
| 3 | +http://www.mediawiki.org/wiki/Extension:CheckUser |
Index: trunk/testing/installer/installfiles/extensions/CheckUser.install/update.sh |
— | — | @@ -0,0 +1,9 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
| 10 | +php maintenance/SMW_setup.php |
Property changes on: trunk/testing/installer/installfiles/extensions/CheckUser.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 11 | + * |
Index: trunk/testing/installer/installfiles/extensions/CheckUser.install/download.sh |
— | — | @@ -0,0 +1,13 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | + |
| 7 | +cd $DESTINATION_DIR |
| 8 | +if test -n "$REVISION"; then |
| 9 | + svn checkout -r $REVISION $repository |
| 10 | +else |
| 11 | + svn checkout $repository |
| 12 | +fi |
| 13 | + |
| 14 | + |
Property changes on: trunk/testing/installer/installfiles/extensions/CheckUser.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 15 | + * |
Index: trunk/testing/installer/installfiles/extensions/CheckUser.install/CheckUser.settings.php |
— | — | @@ -0,0 +1,5 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +include_once("$IP/extensions/CheckUser/CheckUser.php"); |
| 5 | + |
| 6 | +?> |
Index: trunk/testing/installer/installfiles/extensions/CheckUser.install/uninstall.sh |
— | — | @@ -0,0 +1,5 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +php $DESTINATION_DIR/$NAME/maintenance/SMW_setup.php --delete |
| 5 | +cd $DESTINATION_DIR |
| 6 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/CheckUser.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 7 | + * |
Index: trunk/testing/installer/installfiles/extensions/DataTransfer.install/info |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +SemanticForms: |
| 3 | +http://mediawiki.org/wiki/Extension:Data_Transfer |
Property changes on: trunk/testing/installer/installfiles/extensions/DataTransfer.install/info |
___________________________________________________________________ |
Added: eol:native |
1 | 4 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/DataTransfer.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/DataTransfer.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Added: eol:native |
2 | 11 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/DataTransfer.install/download.sh |
— | — | @@ -0,0 +1,10 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/DataTransfer.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 12 | + * |
Added: eol:native |
2 | 13 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/DataTransfer.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/DataTransfer.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Added: eol:native |
2 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/DataTransfer.install/DataTransfer.settings.php |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/DataTransfer/includes/DT_Settings.php"); |
| 5 | + |
| 6 | + |
| 7 | +?> |
Property changes on: trunk/testing/installer/installfiles/extensions/DataTransfer.install/DataTransfer.settings.php |
___________________________________________________________________ |
Added: eol:native |
1 | 8 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/DataTransfer.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/DataTransfer.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Added: eol:native |
2 | 6 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Configure.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/Configure.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 6 | + native |
Added: svn:executable |
2 | 7 | + * |
Added: eol:native |
3 | 8 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Configure.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/Configure.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 5 | + native |
Added: svn:executable |
2 | 6 | + * |
Added: eol:native |
3 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Configure.install/Configure.settings.php |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +<?php |
| 3 | + |
| 4 | +require_once $IP . '/extensions/Configure/Configure.php'; |
| 5 | +efConfigureSetup(); |
Property changes on: trunk/testing/installer/installfiles/extensions/Configure.install/Configure.settings.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 6 | + native |
Added: eol:native |
2 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Configure.install/info |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +cite: |
| 3 | +http://www.mediawiki.org/wiki/Extension:Configure |
Property changes on: trunk/testing/installer/installfiles/extensions/Configure.install/info |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 4 | + native |
Added: eol:native |
2 | 5 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Configure.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/Configure.install/update.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 10 | + native |
Added: svn:executable |
2 | 11 | + * |
Added: eol:native |
3 | 12 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Configure.install/download.sh |
— | — | @@ -0,0 +1,13 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
| 12 | + |
| 13 | +# Make the serialized directory world readable so it can be read by the web server. |
| 14 | +chmod 777 $DESTINATION_DIR/../serialized/ |
Property changes on: trunk/testing/installer/installfiles/extensions/Configure.install/download.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 15 | + native |
Added: svn:executable |
2 | 16 | + * |
Added: eol:native |
3 | 17 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticGoogleMaps.install/download.sh |
— | — | @@ -0,0 +1,10 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticGoogleMaps.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 12 | + * |
Added: eol:native |
2 | 13 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticGoogleMaps.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticGoogleMaps.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Added: eol:native |
2 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticGoogleMaps.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticGoogleMaps.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Added: eol:native |
2 | 6 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticGoogleMaps.install/SemanticGoogleMaps.settings.php |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/SemanticMediaWiki/includes/SMW_Settings.php"); |
| 5 | + |
| 6 | +require_once("$IP/extensions/SemanticGoogleMaps/SemanticGoogleMaps.php"); |
| 7 | + |
| 8 | + |
| 9 | +?> |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticGoogleMaps.install/SemanticGoogleMaps.settings.php |
___________________________________________________________________ |
Added: eol:native |
1 | 10 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticGoogleMaps.install/info |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +Semantic Google Maps: |
| 3 | +http://mediawiki.org/wiki/Extension:Semantic_Google_Maps |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticGoogleMaps.install/info |
___________________________________________________________________ |
Added: eol:native |
1 | 4 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticGoogleMaps.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticGoogleMaps.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Added: eol:native |
2 | 11 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticDrilldown.install/download.sh |
— | — | @@ -0,0 +1,10 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticDrilldown.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 12 | + * |
Added: eol:native |
2 | 13 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticDrilldown.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticDrilldown.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Added: eol:native |
2 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticDrilldown.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticDrilldown.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Added: eol:native |
2 | 6 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticDrilldown.install/SemanticDrilldown.settings.php |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/SemanticMediaWiki/includes/SMW_Settings.php"); |
| 5 | + |
| 6 | +require_once("$IP/extensions/SemanticDrilldown/includes/SD_Settings.php"); |
| 7 | + |
| 8 | + |
| 9 | +?> |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticDrilldown.install/SemanticDrilldown.settings.php |
___________________________________________________________________ |
Added: eol:native |
1 | 10 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticDrilldown.install/info |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +SemanticForms: |
| 3 | +http://mediawiki.org/wiki/Extension:Semantic_Drilldown |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticDrilldown.install/info |
___________________________________________________________________ |
Added: eol:native |
1 | 4 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticDrilldown.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticDrilldown.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Added: eol:native |
2 | 11 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SpecialCite.install/SpecialCite.settings.php |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/Cite/SpecialCite.php"); |
| 5 | + |
| 6 | + |
| 7 | +?> |
Index: trunk/testing/installer/installfiles/extensions/SpecialCite.install/info |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +Special:Cite |
| 3 | +=========== |
| 4 | +http://www.mediawiki.org/wiki/Extension:Cite/Special:Cite.php |
Index: trunk/testing/installer/installfiles/extensions/SpecialCite.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/SpecialCite.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Index: trunk/testing/installer/installfiles/extensions/SpecialCite.install/download.sh |
— | — | @@ -0,0 +1,10 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/Cite" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository SpecialCite/ |
| 9 | +else |
| 10 | + svn checkout $repository SpecialCite/ |
| 11 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/SpecialCite.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 12 | + * |
Index: trunk/testing/installer/installfiles/extensions/SpecialCite.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR |
| 5 | +rm -rf SpecialCite |
Property changes on: trunk/testing/installer/installfiles/extensions/SpecialCite.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Index: trunk/testing/installer/installfiles/extensions/SpecialCite.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/SpecialCite && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/SpecialCite.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Index: trunk/testing/installer/installfiles/extensions/MooTools12core.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/uniwiki/ |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/MooTools12core.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Added: eol:native |
2 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/MooTools12core.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/uniwiki/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/MooTools12core.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Added: eol:native |
2 | 6 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/MooTools12core.install/info |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +CssHooks: |
| 3 | +http://www.mediawiki.org/wiki/Extension:MooTools_1.2_Core |
| 4 | + |
Property changes on: trunk/testing/installer/installfiles/extensions/MooTools12core.install/info |
___________________________________________________________________ |
Added: eol:native |
1 | 5 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/MooTools12core.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/uniwiki/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/MooTools12core.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Added: eol:native |
2 | 11 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/MooTools12core.install/MooTools12core.settings.php |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/uniwiki/MooTools12core/MooTools12core.php"); |
| 5 | + |
| 6 | + |
| 7 | +?> |
Property changes on: trunk/testing/installer/installfiles/extensions/MooTools12core.install/MooTools12core.settings.php |
___________________________________________________________________ |
Added: eol:native |
1 | 8 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/MooTools12core.install/download.sh |
— | — | @@ -0,0 +1,18 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/uniwiki/$NAME" |
| 5 | + |
| 6 | +if [ -d "$DESTINATION_DIR/uniwiki" ]; then |
| 7 | + echo "Directory exists" |
| 8 | +else |
| 9 | + mkdir "$DESTINATION_DIR/uniwiki" |
| 10 | + echo "Directory is created" |
| 11 | +fi |
| 12 | + |
| 13 | + |
| 14 | +cd $DESTINATION_DIR/uniwiki |
| 15 | +if test -n "$REVISION"; then |
| 16 | + svn checkout -r $REVISION $repository |
| 17 | +else |
| 18 | + svn checkout $repository |
| 19 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/MooTools12core.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 20 | + * |
Added: eol:native |
2 | 21 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/CatBoxAtTop.install/CatBoxAtTop.settings.php |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/uniwiki/CatBoxAtTop/CatBoxAtTop.php"); |
| 5 | + |
| 6 | + |
| 7 | +?> |
Property changes on: trunk/testing/installer/installfiles/extensions/CatBoxAtTop.install/CatBoxAtTop.settings.php |
___________________________________________________________________ |
Added: eol:native |
1 | 8 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/CatBoxAtTop.install/download.sh |
— | — | @@ -0,0 +1,18 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/uniwiki/$NAME" |
| 5 | + |
| 6 | +if [ -d "$DESTINATION_DIR/uniwiki" ]; then |
| 7 | + echo "Directory exists" |
| 8 | +else |
| 9 | + mkdir "$DESTINATION_DIR/uniwiki" |
| 10 | + echo "Directory is created" |
| 11 | +fi |
| 12 | + |
| 13 | + |
| 14 | +cd $DESTINATION_DIR/uniwiki |
| 15 | +if test -n "$REVISION"; then |
| 16 | + svn checkout -r $REVISION $repository |
| 17 | +else |
| 18 | + svn checkout $repository |
| 19 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/CatBoxAtTop.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 20 | + * |
Added: eol:native |
2 | 21 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/CatBoxAtTop.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/uniwiki/ |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/CatBoxAtTop.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Added: eol:native |
2 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/CatBoxAtTop.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/uniwiki/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/CatBoxAtTop.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Added: eol:native |
2 | 6 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/CatBoxAtTop.install/info |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +CssHooks: |
| 3 | +http://www.mediawiki.org/wiki/Extension:CatBoxAtTop |
| 4 | + |
Property changes on: trunk/testing/installer/installfiles/extensions/CatBoxAtTop.install/info |
___________________________________________________________________ |
Added: eol:native |
1 | 5 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/CatBoxAtTop.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/uniwiki/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/CatBoxAtTop.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Added: eol:native |
2 | 11 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/TitleKey.install/setup.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +$MYSQL_COMMAND $DATABASE_NAME < $DESTINATION_DIR/$NAME/titlekey.sql |
| 5 | + |
Property changes on: trunk/testing/installer/installfiles/extensions/TitleKey.install/setup.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Index: trunk/testing/installer/installfiles/extensions/TitleKey.install/info |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +Titlekey: |
| 3 | +http://www.mediawiki.org/wiki/Extension:TitleKey |
Index: trunk/testing/installer/installfiles/extensions/TitleKey.install/update.sh |
— | — | @@ -0,0 +1,9 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
| 10 | +php maintenance/SMW_setup.php |
Property changes on: trunk/testing/installer/installfiles/extensions/TitleKey.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 11 | + * |
Index: trunk/testing/installer/installfiles/extensions/TitleKey.install/TitleKey.settings.php |
— | — | @@ -0,0 +1,5 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +include_once("$IP/extensions/TitleKey/TitleKey.php"); |
| 5 | + |
| 6 | +?> |
Index: trunk/testing/installer/installfiles/extensions/TitleKey.install/download.sh |
— | — | @@ -0,0 +1,10 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/TitleKey.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 12 | + * |
Index: trunk/testing/installer/installfiles/extensions/TitleKey.install/uninstall.sh |
— | — | @@ -0,0 +1,5 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +php $DESTINATION_DIR/$NAME/maintenance/SMW_setup.php --delete |
| 5 | +cd $DESTINATION_DIR |
| 6 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/TitleKey.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 7 | + * |
Index: trunk/testing/installer/installfiles/extensions/TitleKey.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/TitleKey.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Index: trunk/testing/installer/installfiles/extensions/CssHooks.install/info |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +CssHooks: |
| 3 | +http://www.mediawiki.org/wiki/Extension:CssHooks |
Property changes on: trunk/testing/installer/installfiles/extensions/CssHooks.install/info |
___________________________________________________________________ |
Added: eol:native |
1 | 4 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/CssHooks.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/uniwiki/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/CssHooks.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Added: eol:native |
2 | 11 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/CssHooks.install/download.sh |
— | — | @@ -0,0 +1,18 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/uniwiki/$NAME" |
| 5 | + |
| 6 | +if [ -d "$DESTINATION_DIR/uniwiki" ]; then |
| 7 | + echo "Directory exists" |
| 8 | +else |
| 9 | + mkdir "$DESTINATION_DIR/uniwiki" |
| 10 | + echo "Directory is created" |
| 11 | +fi |
| 12 | + |
| 13 | + |
| 14 | +cd $DESTINATION_DIR/uniwiki |
| 15 | +if test -n "$REVISION"; then |
| 16 | + svn checkout -r $REVISION $repository |
| 17 | +else |
| 18 | + svn checkout $repository |
| 19 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/CssHooks.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 20 | + * |
Added: eol:native |
2 | 21 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/CssHooks.install/CssHooks.settings.php |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/uniwiki/CssHooks/CssHooks.php"); |
| 5 | + |
| 6 | + |
| 7 | +?> |
Property changes on: trunk/testing/installer/installfiles/extensions/CssHooks.install/CssHooks.settings.php |
___________________________________________________________________ |
Added: eol:native |
1 | 8 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/CssHooks.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/uniwiki/ |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/CssHooks.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Added: eol:native |
2 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/CssHooks.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/uniwiki/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/CssHooks.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Added: eol:native |
2 | 6 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/TrustedXFF.install/download.sh |
— | — | @@ -0,0 +1,10 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/TrustedXFF.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 12 | + * |
Index: trunk/testing/installer/installfiles/extensions/TrustedXFF.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/TrustedXFF.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Index: trunk/testing/installer/installfiles/extensions/TrustedXFF.install/TrustedXFF.settings.php |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/TrustedXFF/TrustedXFF.php"); |
| 5 | + |
| 6 | + |
| 7 | +?> |
Index: trunk/testing/installer/installfiles/extensions/TrustedXFF.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/TrustedXFF.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Index: trunk/testing/installer/installfiles/extensions/TrustedXFF.install/setup.sh |
— | — | @@ -0,0 +1,5 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | + |
| 6 | +php $DESTINATION_DIR/$NAME/generate.php |
Property changes on: trunk/testing/installer/installfiles/extensions/TrustedXFF.install/setup.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 7 | + * |
Index: trunk/testing/installer/installfiles/extensions/TrustedXFF.install/info |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +TrustedXFF |
| 3 | +========== |
| 4 | +http://www.mediawiki.org/wiki/Extension:TrustedXFF |
Index: trunk/testing/installer/installfiles/extensions/TrustedXFF.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/TrustedXFF.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Index: trunk/testing/installer/installfiles/extensions/SemanticResultFormats.install/download.sh |
— | — | @@ -0,0 +1,10 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticResultFormats.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 12 | + * |
Added: eol:native |
2 | 13 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticResultFormats.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticResultFormats.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Added: eol:native |
2 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticResultFormats.install/SemanticResultFormats.settings.php |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/SemanticMediaWiki/includes/SMW_Settings.php"); |
| 5 | + |
| 6 | +require_once("$IP/extensions/SemanticResultFormats/SRF_Settings.php"); |
| 7 | + |
| 8 | + |
| 9 | +?> |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticResultFormats.install/SemanticResultFormats.settings.php |
___________________________________________________________________ |
Added: eol:native |
1 | 10 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticResultFormats.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticResultFormats.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Added: eol:native |
2 | 6 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticResultFormats.install/info |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +SemanticResultFormats: |
| 3 | +http://semantic-mediawiki.org/wiki/Help:Semantic_Result_Formats |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticResultFormats.install/info |
___________________________________________________________________ |
Added: eol:native |
1 | 4 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticResultFormats.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticResultFormats.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Added: eol:native |
2 | 11 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/CreatePage.install/info |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +imagemap: |
| 3 | +http://www.mediawiki.org/wiki/Extension:CreatePage |
Property changes on: trunk/testing/installer/installfiles/extensions/CreatePage.install/info |
___________________________________________________________________ |
Added: eol:native |
1 | 4 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/CreatePage.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/uniwiki/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/CreatePage.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Added: eol:native |
2 | 11 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/CreatePage.install/download.sh |
— | — | @@ -0,0 +1,18 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/uniwiki/$NAME" |
| 5 | + |
| 6 | +if [ -d "$DESTINATION_DIR/uniwiki" ]; then |
| 7 | + echo "the directory exists" |
| 8 | +else |
| 9 | + mkdir "$DESTINATION_DIR/uniwiki" |
| 10 | + echo "the directory is created" |
| 11 | +fi |
| 12 | + |
| 13 | + |
| 14 | +cd $DESTINATION_DIR/uniwiki |
| 15 | +if test -n "$REVISION"; then |
| 16 | + svn checkout -r $REVISION $repository |
| 17 | +else |
| 18 | + svn checkout $repository |
| 19 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/CreatePage.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 20 | + * |
Added: eol:native |
2 | 21 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/CreatePage.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/uniwiki/ |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/CreatePage.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Added: eol:native |
2 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/CreatePage.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/uniwiki/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/CreatePage.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Added: eol:native |
2 | 6 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/CreatePage.install/CreatePage.settings.php |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/uniwiki/CreatePage/CreatePage.php"); |
| 5 | + |
| 6 | + |
| 7 | +?> |
Property changes on: trunk/testing/installer/installfiles/extensions/CreatePage.install/CreatePage.settings.php |
___________________________________________________________________ |
Added: eol:native |
1 | 8 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Layouts.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/uniwiki/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/Layouts.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Added: eol:native |
2 | 6 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Layouts.install/Layouts.settings.php |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/uniwiki/Layouts/Layouts.php"); |
| 5 | + |
| 6 | + |
| 7 | +?> |
Property changes on: trunk/testing/installer/installfiles/extensions/Layouts.install/Layouts.settings.php |
___________________________________________________________________ |
Added: eol:native |
1 | 8 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Layouts.install/info |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +Layouts: |
| 3 | +http://www.mediawiki.org/wiki/Extension:Layouts |
| 4 | + |
Property changes on: trunk/testing/installer/installfiles/extensions/Layouts.install/info |
___________________________________________________________________ |
Added: eol:native |
1 | 5 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Layouts.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/uniwiki/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/Layouts.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Added: eol:native |
2 | 11 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Layouts.install/download.sh |
— | — | @@ -0,0 +1,18 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/uniwiki/$NAME" |
| 5 | + |
| 6 | +if [ -d "$DESTINATION_DIR/uniwiki" ]; then |
| 7 | + echo "Directory exists" |
| 8 | +else |
| 9 | + mkdir "$DESTINATION_DIR/uniwiki" |
| 10 | + echo "Directory is created" |
| 11 | +fi |
| 12 | + |
| 13 | + |
| 14 | +cd $DESTINATION_DIR/uniwiki |
| 15 | +if test -n "$REVISION"; then |
| 16 | + svn checkout -r $REVISION $repository |
| 17 | +else |
| 18 | + svn checkout $repository |
| 19 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/Layouts.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 20 | + * |
Added: eol:native |
2 | 21 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Layouts.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/uniwiki/ |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/Layouts.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Added: eol:native |
2 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticCompoundQueries.install/download.sh |
— | — | @@ -0,0 +1,10 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticCompoundQueries.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 12 | + * |
Added: eol:native |
2 | 13 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticCompoundQueries.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticCompoundQueries.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Added: eol:native |
2 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticCompoundQueries.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticCompoundQueries.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Added: eol:native |
2 | 6 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticCompoundQueries.install/info |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +SemanticForms: |
| 3 | +http://mediawiki.org/wiki/Extension:Semantic_Compound_Queries |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticCompoundQueries.install/info |
___________________________________________________________________ |
Added: eol:native |
1 | 4 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticCompoundQueries.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticCompoundQueries.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Added: eol:native |
2 | 11 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticCompoundQueries.install/SemanticCompundQueries.settings.php |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/SemanticMediaWiki/includes/SMW_Settings.php"); |
| 5 | + |
| 6 | +require_once("$IP/extensions/SemanticCompoundQueries/SCQ_Settings.php"); |
| 7 | + |
| 8 | + |
| 9 | +?> |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticCompoundQueries.install/SemanticCompundQueries.settings.php |
___________________________________________________________________ |
Added: eol:native |
1 | 10 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Renameuser.install/Renameuser.settings.php |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/Renameuser/SpecialRenameuser.php"); |
| 5 | + |
| 6 | + |
| 7 | +?> |
Property changes on: trunk/testing/installer/installfiles/extensions/Renameuser.install/Renameuser.settings.php |
___________________________________________________________________ |
Added: eol:native |
1 | 8 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Renameuser.install/info |
— | — | @@ -0,0 +1,5 @@ |
| 2 | +InputBox |
| 3 | +======== |
| 4 | +http://www.mediawiki.org/wiki/Extension:Renameuser |
| 5 | + |
| 6 | +The Renameuser extension is a MediaWiki extension that allows a bureaucrat to rename a user. |
Property changes on: trunk/testing/installer/installfiles/extensions/Renameuser.install/info |
___________________________________________________________________ |
Added: eol:native |
1 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Renameuser.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/Renameuser.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Added: eol:native |
2 | 11 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Renameuser.install/download.sh |
— | — | @@ -0,0 +1,10 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/Renameuser.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 12 | + * |
Added: eol:native |
2 | 13 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Renameuser.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/Renameuser.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Added: eol:native |
2 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Renameuser.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/Renameuser.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Added: eol:native |
2 | 6 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Javascript.install/download.sh |
— | — | @@ -0,0 +1,18 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/uniwiki/$NAME" |
| 5 | + |
| 6 | +if [ -d "$DESTINATION_DIR/uniwiki" ]; then |
| 7 | + echo "Directory exists" |
| 8 | +else |
| 9 | + mkdir "$DESTINATION_DIR/uniwiki" |
| 10 | + echo "Directory is created" |
| 11 | +fi |
| 12 | + |
| 13 | + |
| 14 | +cd $DESTINATION_DIR/uniwiki |
| 15 | +if test -n "$REVISION"; then |
| 16 | + svn checkout -r $REVISION $repository |
| 17 | +else |
| 18 | + svn checkout $repository |
| 19 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/Javascript.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 20 | + * |
Added: eol:native |
2 | 21 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Javascript.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/uniwiki/ |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/Javascript.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Added: eol:native |
2 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Javascript.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/uniwiki/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/Javascript.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Added: eol:native |
2 | 6 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Javascript.install/Javascript.settings.php |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/uniwiki/Javascript/Javascript.php"); |
| 5 | + |
| 6 | + |
| 7 | +?> |
Property changes on: trunk/testing/installer/installfiles/extensions/Javascript.install/Javascript.settings.php |
___________________________________________________________________ |
Added: eol:native |
1 | 8 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Javascript.install/info |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +Javascript: |
| 3 | +http://www.mediawiki.org/wiki/Extension:Javascript |
| 4 | + |
Property changes on: trunk/testing/installer/installfiles/extensions/Javascript.install/info |
___________________________________________________________________ |
Added: eol:native |
1 | 5 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Javascript.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/uniwiki/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/Javascript.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Added: eol:native |
2 | 11 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/CrossNamespaceLinks.install/info |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +CrossNamespaceLinks |
| 3 | +=================== |
| 4 | +http://www.mediawiki.org/wiki/Extension:CrossNamespaceLinks |
Index: trunk/testing/installer/installfiles/extensions/CrossNamespaceLinks.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/CrossNamespaceLinks.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Index: trunk/testing/installer/installfiles/extensions/CrossNamespaceLinks.install/CrossNamespaceLinks.settings.php |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/CrossNamespaceLinks/SpecialCrossNamespaceLinks.php"); |
| 5 | + |
| 6 | + |
| 7 | +?> |
Index: trunk/testing/installer/installfiles/extensions/CrossNamespaceLinks.install/download.sh |
— | — | @@ -0,0 +1,10 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/CrossNamespaceLinks.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 12 | + * |
Index: trunk/testing/installer/installfiles/extensions/CrossNamespaceLinks.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/CrossNamespaceLinks.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Index: trunk/testing/installer/installfiles/extensions/CrossNamespaceLinks.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/CrossNamespaceLinks.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Index: trunk/testing/installer/installfiles/extensions/xGenericEditPage.install/download.sh |
— | — | @@ -0,0 +1,18 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/uniwiki/GenericEditPage" |
| 5 | + |
| 6 | +if [ -d "$DESTINATION_DIR/uniwiki" ]; then |
| 7 | + echo "Directory exists" |
| 8 | +else |
| 9 | + mkdir "$DESTINATION_DIR/uniwiki" |
| 10 | + echo "Directory is created" |
| 11 | +fi |
| 12 | + |
| 13 | + |
| 14 | +cd $DESTINATION_DIR/uniwiki |
| 15 | +if test -n "$REVISION"; then |
| 16 | + svn checkout -r $REVISION $repository |
| 17 | +else |
| 18 | + svn checkout $repository |
| 19 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/xGenericEditPage.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 20 | + * |
Added: eol:native |
2 | 21 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/xGenericEditPage.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/uniwiki/ |
| 5 | +rm -rf GenericEditPage |
Property changes on: trunk/testing/installer/installfiles/extensions/xGenericEditPage.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Added: eol:native |
2 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/xGenericEditPage.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/uniwiki/GenericEditPage && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/xGenericEditPage.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Added: eol:native |
2 | 6 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/xGenericEditPage.install/info |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +GenericEditPage: |
| 3 | +http://www.mediawiki.org/wiki/Extension:GenericEditPage |
| 4 | + |
Property changes on: trunk/testing/installer/installfiles/extensions/xGenericEditPage.install/info |
___________________________________________________________________ |
Added: eol:native |
1 | 5 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/xGenericEditPage.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/uniwiki/GenericEditPage |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/xGenericEditPage.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Added: eol:native |
2 | 11 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/xGenericEditPage.install/xGenericEditPage.settings.php |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/uniwiki/GenericEditPage/GenericEditPage.php"); |
| 5 | + |
| 6 | + |
| 7 | +?> |
Property changes on: trunk/testing/installer/installfiles/extensions/xGenericEditPage.install/xGenericEditPage.settings.php |
___________________________________________________________________ |
Added: eol:native |
1 | 8 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/OAI.install/OAI.settings.php |
— | — | @@ -0,0 +1,12 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/OAI/OAIRepo.php"); |
| 5 | + |
| 6 | +$oaiAgentRegex = '/experimental/'; |
| 7 | +$oaiAuth = true; # broken... squid? php config? wtf |
| 8 | +$oaiAudit = true; |
| 9 | +$oaiAuditDatabase = 'oai'; |
| 10 | +#$wgDebugLogGroups['oai'] = '/home/wikipedia/logs/oai.log'; |
| 11 | + |
| 12 | + |
| 13 | +?> |
Index: trunk/testing/installer/installfiles/extensions/OAI.install/download.sh |
— | — | @@ -0,0 +1,10 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/OAI.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 12 | + * |
Index: trunk/testing/installer/installfiles/extensions/OAI.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/OAI.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Index: trunk/testing/installer/installfiles/extensions/OAI.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/OAI.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Index: trunk/testing/installer/installfiles/extensions/OAI.install/AOT-uninstall.sql |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +DROP TABLE thread; |
| 3 | +DROP TABLE historical_thread; |
| 4 | +DROP TABLE user_message_state; |
\ No newline at end of file |
Index: trunk/testing/installer/installfiles/extensions/OAI.install/setup.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +$MYSQL_COMMAND $DATABASE_NAME < $DESTINATION_DIR/$NAME/update_table.sql |
Property changes on: trunk/testing/installer/installfiles/extensions/OAI.install/setup.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Index: trunk/testing/installer/installfiles/extensions/OAI.install/info |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +OAIRepositoryp: |
| 3 | +http://www.mediawiki.org/wiki/Extension:OAIRepository |
Index: trunk/testing/installer/installfiles/extensions/OAI.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/OAI.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Index: trunk/testing/installer/installfiles/extensions/InputBox.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/InputBox.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 6 | + native |
Added: svn:executable |
2 | 7 | + * |
Added: eol:native |
3 | 8 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/InputBox.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/InputBox.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 5 | + native |
Added: svn:executable |
2 | 6 | + * |
Added: eol:native |
3 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/InputBox.install/info |
— | — | @@ -0,0 +1,5 @@ |
| 2 | +InputBox |
| 3 | +======== |
| 4 | +http://www.mediawiki.org/wiki/Extension:InputBox |
| 5 | + |
| 6 | +The Inputbox extension is a MediaWiki extension which adds already created HTML forms to wiki pages. |
Property changes on: trunk/testing/installer/installfiles/extensions/InputBox.install/info |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 7 | + native |
Added: eol:native |
2 | 8 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/InputBox.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/InputBox.install/update.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 10 | + native |
Added: svn:executable |
2 | 11 | + * |
Added: eol:native |
3 | 12 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/InputBox.install/InputBox.settings.php |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/InputBox/InputBox.php"); |
| 5 | + |
| 6 | + |
| 7 | +?> |
Property changes on: trunk/testing/installer/installfiles/extensions/InputBox.install/InputBox.settings.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 8 | + native |
Added: eol:native |
2 | 9 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/InputBox.install/download.sh |
— | — | @@ -0,0 +1,10 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/InputBox.install/download.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 12 | + native |
Added: svn:executable |
2 | 13 | + * |
Added: eol:native |
3 | 14 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/ConfirmAccount.install/ConfirmAccount-uninstall.sql |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +DROP TABLE account_requests; |
| 3 | +DROP TABLE account_credentials; |
Property changes on: trunk/testing/installer/installfiles/extensions/ConfirmAccount.install/ConfirmAccount-uninstall.sql |
___________________________________________________________________ |
Added: eol:native |
1 | 4 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/ConfirmAccount.install/ConfirmAccount.settings.php |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +<?php |
| 3 | +require_once("$IP/extensions/ConfirmAccount/SpecialConfirmAccount.php"); |
Property changes on: trunk/testing/installer/installfiles/extensions/ConfirmAccount.install/ConfirmAccount.settings.php |
___________________________________________________________________ |
Added: eol:native |
1 | 4 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/ConfirmAccount.install/download.sh |
— | — | @@ -0,0 +1,12 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
| 12 | + |
| 13 | +$MYSQL_COMMAND $DATABASE_NAME < $NAME/ConfirmAccount.sql |
Property changes on: trunk/testing/installer/installfiles/extensions/ConfirmAccount.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 14 | + * |
Added: eol:native |
2 | 15 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/ConfirmAccount.install/uninstall.sh |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +$MYSQL_COMMAND $DATABASE_NAME < $INSTALL_DIR/ConfirmAccount-uninstall.sql |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/ConfirmAccount.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 8 | + * |
Added: eol:native |
2 | 9 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/ConfirmAccount.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/ConfirmAccount.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Added: eol:native |
2 | 6 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/ConfirmAccount.install/info |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +confirmaccount: |
| 3 | +http://www.mediawiki.org/wiki/Extension:ConfirmAccount |
Property changes on: trunk/testing/installer/installfiles/extensions/ConfirmAccount.install/info |
___________________________________________________________________ |
Added: eol:native |
1 | 4 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/ConfirmAccount.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/ConfirmAccount.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Added: eol:native |
2 | 11 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/ExternalData.install/download.sh |
— | — | @@ -0,0 +1,10 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/ExternalData.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 12 | + * |
Added: eol:native |
2 | 13 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/ExternalData.install/ExternalData.settings.php |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/ExternalData/ED_Settings.php"); |
| 5 | + |
| 6 | + |
| 7 | +?> |
Property changes on: trunk/testing/installer/installfiles/extensions/ExternalData.install/ExternalData.settings.php |
___________________________________________________________________ |
Added: eol:native |
1 | 8 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/ExternalData.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/ExternalData.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Added: eol:native |
2 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/ExternalData.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/ExternalData.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Added: eol:native |
2 | 6 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/ExternalData.install/info |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +InputBox |
| 3 | +======== |
| 4 | +http://www.mediawiki.org/wiki/Extension:ExternalData |
Property changes on: trunk/testing/installer/installfiles/extensions/ExternalData.install/info |
___________________________________________________________________ |
Added: eol:native |
1 | 5 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/ExternalData.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/ExternalData.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Added: eol:native |
2 | 11 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/MetavidWiki.install/info |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +MetavidWiki |
| 3 | +http://metavidwiki.org |
Index: trunk/testing/installer/installfiles/extensions/MetavidWiki.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/MetavidWiki.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Index: trunk/testing/installer/installfiles/extensions/MetavidWiki.install/download.sh |
— | — | @@ -0,0 +1,10 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/MetavidWiki.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 12 | + * |
Index: trunk/testing/installer/installfiles/extensions/MetavidWiki.install/MetavidWiki.settings.php |
— | — | @@ -0,0 +1,18 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once( "$IP/extensions/ParserFunctions/ParserFunctions.php" ); |
| 5 | + |
| 6 | +//set up namespace: |
| 7 | +$smwgNamespaceIndex=100; |
| 8 | +//set metavid namespace to smw namespace + 6 |
| 9 | +$mvNamespaceIndex=$smwgNamespaceIndex + 6; |
| 10 | +include_once("$IP/extensions/MetavidWiki/includes/MV_Settings.php"); |
| 11 | + |
| 12 | +//include SemanticMediaWiki settings (if used) |
| 13 | +include_once("$IP/extensions/SemanticMediaWiki/includes/SMW_Settings.php"); |
| 14 | +enableSemantics('localhost'); |
| 15 | + |
| 16 | +//include after enableSemantics to enable metavid Extension semantic wiki overrides |
| 17 | +enableMetavid(); |
| 18 | + |
| 19 | +?> |
Index: trunk/testing/installer/installfiles/extensions/MetavidWiki.install/uninstall.sh |
— | — | @@ -0,0 +1,5 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +php $DESTINATION_DIR/$NAME/maintenance/SMW_setup.php --delete |
| 5 | +cd $DESTINATION_DIR |
| 6 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/MetavidWiki.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 7 | + * |
Index: trunk/testing/installer/installfiles/extensions/MetavidWiki.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/MetavidWiki.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Index: trunk/testing/installer/installfiles/extensions/MetavidWiki.install/setup.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +$MYSQL_COMMAND $DATABASE_NAME < $DESTINATION_DIR/$NAME/maintenance/mv_tables.sql |
| 5 | + |
Property changes on: trunk/testing/installer/installfiles/extensions/MetavidWiki.install/setup.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Index: trunk/testing/installer/installfiles/extensions/uniwiki.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/uniwiki.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Added: eol:native |
2 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/uniwiki.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/uniwiki.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Added: eol:native |
2 | 6 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/uniwiki.install/uniwiki.settings.php |
— | — | @@ -0,0 +1,16 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +# All of UniWiki |
| 5 | +# ======= |
| 6 | +$uw = "$IP/extensions/uniwiki"; |
| 7 | +require_once("$uw/CssHooks/CssHooks.php"); |
| 8 | +require_once("$uw/Javascript/Javascript.php"); |
| 9 | +require_once("$uw/MooTools12core/MooTools12core.php"); |
| 10 | +require_once("$uw/AutoCreateCategoryPages/AutoCreateCategoryPages.php"); |
| 11 | +require_once("$uw/GenericEditPage/GenericEditPage.php"); |
| 12 | +require_once("$uw/CatBoxAtTop/CatBoxAtTop.php"); |
| 13 | +require_once("$uw/CustomToolbar/CustomToolbar.php"); |
| 14 | +require_once("$uw/Layouts/Layouts.php"); |
| 15 | +require_once("$uw/Authors/Authors.php"); |
| 16 | +require_once("$uw/CreatePage/CreatePage.php"); |
| 17 | +?> |
Property changes on: trunk/testing/installer/installfiles/extensions/uniwiki.install/uniwiki.settings.php |
___________________________________________________________________ |
Added: eol:native |
1 | 18 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/uniwiki.install/info |
— | — | @@ -0,0 +1,5 @@ |
| 2 | +InputBox |
| 3 | +======== |
| 4 | +http://www.mediawiki.org/wiki/Extension:InputBox |
| 5 | + |
| 6 | +The Inputbox extension is a MediaWiki extension which adds already created HTML forms to wiki pages. |
Property changes on: trunk/testing/installer/installfiles/extensions/uniwiki.install/info |
___________________________________________________________________ |
Added: eol:native |
1 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/uniwiki.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/uniwiki.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Added: eol:native |
2 | 11 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/uniwiki.install/download.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +svn checkout http://svn.wikimedia.org/svnroot/mediawiki/trunk/extensions/uniwiki uniwiki |
| 5 | + |
Property changes on: trunk/testing/installer/installfiles/extensions/uniwiki.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Added: eol:native |
2 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/ImageMap.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/ImageMap.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 6 | + native |
Added: svn:executable |
2 | 7 | + * |
Added: eol:native |
3 | 8 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/ImageMap.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/ImageMap.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 5 | + native |
Added: svn:executable |
2 | 6 | + * |
Added: eol:native |
3 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/ImageMap.install/ImageMap.settings.php |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/ImageMap/ImageMap.php"); |
| 5 | + |
| 6 | + |
| 7 | +?> |
Property changes on: trunk/testing/installer/installfiles/extensions/ImageMap.install/ImageMap.settings.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 8 | + native |
Added: eol:native |
2 | 9 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/ImageMap.install/info |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +imagemap: |
| 3 | +http://www.mediawiki.org/wiki/Extension:ImageMap |
Property changes on: trunk/testing/installer/installfiles/extensions/ImageMap.install/info |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 4 | + native |
Added: eol:native |
2 | 5 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/ImageMap.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/ImageMap.install/update.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 10 | + native |
Added: svn:executable |
2 | 11 | + * |
Added: eol:native |
3 | 12 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/ImageMap.install/download.sh |
— | — | @@ -0,0 +1,10 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/ImageMap.install/download.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 12 | + native |
Added: svn:executable |
2 | 13 | + * |
Added: eol:native |
3 | 14 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/GoogleGeocoder.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/GoogleGeocoder.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Index: trunk/testing/installer/installfiles/extensions/GoogleGeocoder.install/GoogleGeocoder.settings.php |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +$wgGoogleMapsKey = 'some_long_string_from_Google'; |
| 5 | + |
| 6 | +require_once("$IP/extensions/GoogleGeocoder/GoogleGeocoder.php"); |
| 7 | + |
| 8 | + |
| 9 | +?> |
Index: trunk/testing/installer/installfiles/extensions/GoogleGeocoder.install/info |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +GoogleGeocoder: |
| 3 | +http://www.mediawiki.org/wiki/Extension:Google_Geocoder |
Index: trunk/testing/installer/installfiles/extensions/GoogleGeocoder.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/GoogleGeocoder.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Index: trunk/testing/installer/installfiles/extensions/GoogleGeocoder.install/download.sh |
— | — | @@ -0,0 +1,13 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +#repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | + |
| 8 | +svn checkout http://mediawiki-google-geocoder.googlecode.com/svn/trunk/ GoogleGeocoder |
| 9 | + |
| 10 | +#if test -n "$REVISION"; then |
| 11 | +# svn checkout -r $REVISION $repository |
| 12 | +#else |
| 13 | +# svn checkout $repository |
| 14 | +#fi |
Property changes on: trunk/testing/installer/installfiles/extensions/GoogleGeocoder.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 15 | + * |
Index: trunk/testing/installer/installfiles/extensions/GoogleGeocoder.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/GoogleGeocoder.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Index: trunk/testing/installer/installfiles/extensions/ParserFunctions.install/ParserFunctions.settings.php |
— | — | @@ -0,0 +1,5 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/ParserFunctions/ParserFunctions.php"); |
| 5 | + |
| 6 | +?> |
\ No newline at end of file |
Property changes on: trunk/testing/installer/installfiles/extensions/ParserFunctions.install/ParserFunctions.settings.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 7 | + native |
Added: eol:native |
2 | 8 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/ParserFunctions.install/info |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +parserfunctions: |
| 3 | +http://www.mediawiki.org/wiki/Extension:ParserFunctions |
Property changes on: trunk/testing/installer/installfiles/extensions/ParserFunctions.install/info |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 4 | + native |
Added: eol:native |
2 | 5 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/ParserFunctions.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/ParserFunctions.install/update.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 10 | + native |
Added: svn:executable |
2 | 11 | + * |
Added: eol:native |
3 | 12 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/ParserFunctions.install/download.sh |
— | — | @@ -0,0 +1,10 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/ParserFunctions.install/download.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 12 | + native |
Added: svn:executable |
2 | 13 | + * |
Added: eol:native |
3 | 14 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/ParserFunctions.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/ParserFunctions.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 6 | + native |
Added: svn:executable |
2 | 7 | + * |
Added: eol:native |
3 | 8 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/ParserFunctions.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/ParserFunctions.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 5 | + native |
Added: svn:executable |
2 | 6 | + * |
Added: eol:native |
3 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Authors.install/Authors.settings.php |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/uniwiki/Authors/Authors.php"); |
| 5 | + |
| 6 | + |
| 7 | +?> |
Index: trunk/testing/installer/installfiles/extensions/Authors.install/info |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +CssHooks: |
| 3 | +http://www.mediawiki.org/wiki/Extension:Authors |
| 4 | + |
Property changes on: trunk/testing/installer/installfiles/extensions/Authors.install/info |
___________________________________________________________________ |
Added: eol:native |
1 | 5 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Authors.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/uniwiki/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/Authors.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Added: eol:native |
2 | 11 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Authors.install/download.sh |
— | — | @@ -0,0 +1,18 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/uniwiki/$NAME" |
| 5 | + |
| 6 | +if [ -d "$DESTINATION_DIR/uniwiki" ]; then |
| 7 | + echo "Directory exists" |
| 8 | +else |
| 9 | + mkdir "$DESTINATION_DIR/uniwiki" |
| 10 | + echo "Directory is created" |
| 11 | +fi |
| 12 | + |
| 13 | + |
| 14 | +cd $DESTINATION_DIR/uniwiki |
| 15 | +if test -n "$REVISION"; then |
| 16 | + svn checkout -r $REVISION $repository |
| 17 | +else |
| 18 | + svn checkout $repository |
| 19 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/Authors.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 20 | + * |
Added: eol:native |
2 | 21 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Authors.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/uniwiki/ |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/Authors.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Added: eol:native |
2 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/Authors.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/uniwiki/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/Authors.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Added: eol:native |
2 | 6 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticMediaWiki.install/SemanticMediaWiki.settings.php |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +include_once("$IP/extensions/SemanticMediaWiki/includes/SMW_Settings.php"); |
| 5 | +enableSemantics($wgServerName); |
| 6 | + |
| 7 | +?> |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticMediaWiki.install/SemanticMediaWiki.settings.php |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 8 | + native |
Added: eol:native |
2 | 9 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticMediaWiki.install/download.sh |
— | — | @@ -0,0 +1,10 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/$NAME" |
| 5 | + |
| 6 | +cd $DESTINATION_DIR |
| 7 | +if test -n "$REVISION"; then |
| 8 | + svn checkout -r $REVISION $repository |
| 9 | +else |
| 10 | + svn checkout $repository |
| 11 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticMediaWiki.install/download.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 12 | + native |
Added: svn:executable |
2 | 13 | + * |
Added: eol:native |
3 | 14 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticMediaWiki.install/uninstall.sh |
— | — | @@ -0,0 +1,5 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +php $DESTINATION_DIR/$NAME/maintenance/SMW_setup.php --delete |
| 5 | +cd $DESTINATION_DIR |
| 6 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticMediaWiki.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 7 | + native |
Added: svn:executable |
2 | 8 | + * |
Added: eol:native |
3 | 9 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticMediaWiki.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticMediaWiki.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 5 | + native |
Added: svn:executable |
2 | 6 | + * |
Added: eol:native |
3 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticMediaWiki.install/setup.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +php $DESTINATION_DIR/$NAME/maintenance/SMW_setup.php |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticMediaWiki.install/setup.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 5 | + native |
Added: svn:executable |
2 | 6 | + * |
Added: eol:native |
3 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticMediaWiki.install/info |
— | — | @@ -0,0 +1,2 @@ |
| 2 | +SemanticMediaWiki: |
| 3 | +http://semantic-mediawiki.org |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticMediaWiki.install/info |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 4 | + native |
Added: eol:native |
2 | 5 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/SemanticMediaWiki.install/update.sh |
— | — | @@ -0,0 +1,9 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
| 10 | +php maintenance/SMW_setup.php |
Property changes on: trunk/testing/installer/installfiles/extensions/SemanticMediaWiki.install/update.sh |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 11 | + native |
Added: svn:executable |
2 | 12 | + * |
Added: eol:native |
3 | 13 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/CustomToolbar.install/download.sh |
— | — | @@ -0,0 +1,18 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +repository="$EXTENSIONS_SVN/uniwiki/$NAME" |
| 5 | + |
| 6 | +if [ -d "$DESTINATION_DIR/uniwiki" ]; then |
| 7 | + echo "Directory exists" |
| 8 | +else |
| 9 | + mkdir "$DESTINATION_DIR/uniwiki" |
| 10 | + echo "Directory is created" |
| 11 | +fi |
| 12 | + |
| 13 | + |
| 14 | +cd $DESTINATION_DIR/uniwiki |
| 15 | +if test -n "$REVISION"; then |
| 16 | + svn checkout -r $REVISION $repository |
| 17 | +else |
| 18 | + svn checkout $repository |
| 19 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/CustomToolbar.install/download.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 20 | + * |
Added: eol:native |
2 | 21 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/CustomToolbar.install/CustomToolbar.settings.php |
— | — | @@ -0,0 +1,6 @@ |
| 2 | +<?PHP |
| 3 | + |
| 4 | +require_once("$IP/extensions/uniwiki/CustomToolbar/CustomToolbar.php"); |
| 5 | + |
| 6 | + |
| 7 | +?> |
Property changes on: trunk/testing/installer/installfiles/extensions/CustomToolbar.install/CustomToolbar.settings.php |
___________________________________________________________________ |
Added: eol:native |
1 | 8 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/CustomToolbar.install/uninstall.sh |
— | — | @@ -0,0 +1,4 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/uniwiki/ |
| 5 | +rm -rf $NAME |
Property changes on: trunk/testing/installer/installfiles/extensions/CustomToolbar.install/uninstall.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 6 | + * |
Added: eol:native |
2 | 7 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/CustomToolbar.install/is_installed.sh |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +test -d $DESTINATION_DIR/uniwiki/$NAME && echo "true" || echo "false" |
Property changes on: trunk/testing/installer/installfiles/extensions/CustomToolbar.install/is_installed.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 5 | + * |
Added: eol:native |
2 | 6 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/CustomToolbar.install/info |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +CustomToolbar: |
| 3 | +http://www.mediawiki.org/wiki/Extension:CustomToolbar |
| 4 | + |
Property changes on: trunk/testing/installer/installfiles/extensions/CustomToolbar.install/info |
___________________________________________________________________ |
Added: eol:native |
1 | 5 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/installfiles/extensions/CustomToolbar.install/update.sh |
— | — | @@ -0,0 +1,8 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +cd $DESTINATION_DIR/uniwiki/$NAME |
| 5 | +if test -n "$REVISION"; then |
| 6 | + svn update -r $REVISION |
| 7 | +else |
| 8 | + svn update |
| 9 | +fi |
Property changes on: trunk/testing/installer/installfiles/extensions/CustomToolbar.install/update.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 10 | + * |
Added: eol:native |
2 | 11 | + Authors.install/Authors.settings.php |
Index: trunk/testing/installer/toolkit_installer.py |
— | — | @@ -0,0 +1,12 @@ |
| 2 | +import settings_handler as settings |
| 3 | +import os, os.path, shutil |
| 4 | +import subprocess |
| 5 | + |
| 6 | +from installation_system import Installation_System |
| 7 | + |
| 8 | +class Toolkit_Installer(Installation_System): |
| 9 | + system_name='toolkit' |
| 10 | + def __init__(self,instance=None): |
| 11 | + Installation_System.__init__(self, instance) |
| 12 | + self.destination_dir=settings.toolkit_dir |
| 13 | + |
Property changes on: trunk/testing/installer/toolkit_installer.py |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 14 | + native |
Index: trunk/testing/installer/Logo_gimp.xcf |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes on: trunk/testing/installer/Logo_gimp.xcf |
___________________________________________________________________ |
Added: svn:mime-type |
2 | 15 | + application/octet-stream |
Index: trunk/testing/installer/installation_system.py |
— | — | @@ -0,0 +1,356 @@ |
| 2 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 3 | +# This software is developed by Kim Bruning. |
| 4 | +# |
| 5 | +# Distributed under the terms of the MIT license. |
| 6 | + |
| 7 | +import settings_handler as settings |
| 8 | +import os, os.path, shutil |
| 9 | +import subprocess |
| 10 | +from tags import Tags |
| 11 | + |
| 12 | + |
| 13 | +class Installer_Exception(Exception): |
| 14 | + pass |
| 15 | + |
| 16 | +class Installation_System(object): |
| 17 | + """An Abstract Installation System. Don't instantiate this class directly. |
| 18 | + An installation system understands how to install and uninstall |
| 19 | + 'things' (instances). An instance might be a particular wiki |
| 20 | + (in the case of the mediawiki installer) or a particular extension |
| 21 | + in that wiki (extension installer), or perhaps a tool from the |
| 22 | + toolkit. |
| 23 | + Next to installing and uninstalling, an installer can also determine |
| 24 | + the status of an instance (installed or uninstalled), and can provide |
| 25 | + lists of instances that are available or installed""" |
| 26 | + system_name=None |
| 27 | + destination_dir=None |
| 28 | + |
| 29 | + def __init__(self,instance=None): |
| 30 | + self.subsystemdir=os.path.join(settings.installfiles, self.system_name) |
| 31 | + self.destination_dir=None |
| 32 | + self.instance=None |
| 33 | + self.as_alias=None |
| 34 | + self.revision=None |
| 35 | + self.tag=None |
| 36 | + if instance: |
| 37 | + self.set_instance(instance) |
| 38 | + |
| 39 | + def set_instance(self,instance): |
| 40 | + self.instance=instance |
| 41 | + |
| 42 | + def get_installers(self): |
| 43 | + """list the installers capable of installing an instance""" |
| 44 | + installers=os.listdir(self.subsystemdir) |
| 45 | + installers2=[] |
| 46 | + for line in installers: |
| 47 | + if line.endswith(".install"): |
| 48 | + installers2.append(line.replace(".install","")) |
| 49 | + |
| 50 | + installers2.sort() |
| 51 | + return installers2 |
| 52 | + |
| 53 | + # XXX This should be a mixin |
| 54 | + def get_revisions(self,installer_name): |
| 55 | + """list the revisions a particular installer can install""" |
| 56 | + |
| 57 | + if not installer_name: |
| 58 | + raise Installer_Exception("What installer would you like to know the available revisions for?") |
| 59 | + |
| 60 | + if not self.exists(installer_name): |
| 61 | + raise Installer_Exception("Can't find installer "+installer_name) |
| 62 | + |
| 63 | + return self._get_revisions(installer_name) |
| 64 | + |
| 65 | + # XXX this should be a mixin |
| 66 | + def _get_revisions(self, installer_name): |
| 67 | + """actually perform the task of getting revisions for get_revisions |
| 68 | + First checks to see if someone has provided a script to determine |
| 69 | + revisions. If not, falls back to internal method _get_revisions_generic.""" |
| 70 | + if self.can_exec(installer_name,'get_revisions'): |
| 71 | + revisions_string=self.exec_task(installer_name,'get_revisions') |
| 72 | + return revisions_string.split('\n') |
| 73 | + else: |
| 74 | + return self._get_revisions_generic(installer_name) |
| 75 | + |
| 76 | + return None |
| 77 | + |
| 78 | + # XXX should be a mixin |
| 79 | + def get_tags(self, installer_name): |
| 80 | + """get list of tags available for this installer.""" |
| 81 | + if not installer_name: |
| 82 | + raise Installer_Exception("What extension would you like to know the available revisions for?") |
| 83 | + |
| 84 | + return Tags().gettags(installer_name) |
| 85 | + |
| 86 | + |
| 87 | + def get_svnbase(self): |
| 88 | + return None |
| 89 | + |
| 90 | + def _get_revisions_generic(self, installer): |
| 91 | + """directly query svn to get a list of available revisions. Usually this is adequate.""" |
| 92 | + |
| 93 | + loglist=self._get_revisions_generic_raw(installer) |
| 94 | + if loglist: |
| 95 | + revs=[] |
| 96 | + for line in loglist: |
| 97 | + if line.startswith("r"): |
| 98 | + rev=line.split()[0] #get the first value |
| 99 | + revs.append(rev[1:]) # strip off the leading r |
| 100 | + |
| 101 | + return revs |
| 102 | + |
| 103 | + return None # just to make explicit what happens otherwise. |
| 104 | + |
| 105 | + def _get_revisions_generic_raw(self, installer): |
| 106 | + """do the actual svn query""" |
| 107 | + svnbase=self.get_svnbase() |
| 108 | + if svnbase: |
| 109 | + location=svnbase+"/"+installer |
| 110 | + loglist=list(os.popen('svn log --quiet '+location)) |
| 111 | + # example excerpt of data generated by the above line |
| 112 | + # ------------------------------------------------------------------------ |
| 113 | + # r47364 | kim | 2009-02-17 17:13:44 +0100 (Tue, 17 Feb 2009) |
| 114 | + # ------------------------------------------------------------------------ |
| 115 | + # r47348 | kim | 2009-02-17 00:40:59 +0100 (Tue, 17 Feb 2009) |
| 116 | + # ------------------------------------------------------------------------ |
| 117 | + # r47345 | kim | 2009-02-17 00:29:07 +0100 (Tue, 17 Feb 2009) |
| 118 | + # |-----| |
| 119 | + # we need the numbers after the first r on the line |
| 120 | + return loglist |
| 121 | + |
| 122 | + |
| 123 | + def exists(self,installer_name): |
| 124 | + """checks to see if a particular installer exists""" |
| 125 | + return installer_name in self.get_installers() |
| 126 | + |
| 127 | + def installdir_name(self, installer_name): |
| 128 | + """returns the location of the .install directory for the given installer_name. |
| 129 | + An installer directory is where we store all the scripts to install one particular |
| 130 | + extension, tool from the toolkit, or etc. """ |
| 131 | + return os.path.join(self.subsystemdir, installer_name+".install") |
| 132 | + |
| 133 | + |
| 134 | + def exec_task(self, installer_name, task, env=None): |
| 135 | + """attempt to execute a file starting with the name of task[0] (ie. task.sh, task.py, task.pl, etc) |
| 136 | + * We look for the files in the relevant .install directoty (see also: installdir_name() ) |
| 137 | + * task is name of some task. If task requires args, provide a list, task[0] is name of task, task[1:] is args |
| 138 | + * if no such file exists or file fails to run, return an exception. |
| 139 | + * if more than one match exists, one match is picked |
| 140 | + Exactly Which match is picked is not defined |
| 141 | + (so Don't Do That) |
| 142 | + * Quite some information is passed via environment vars. Set debug=True in settings.py to take a look. |
| 143 | + returns |
| 144 | + * stdout returned by task command if successful |
| 145 | + * None if task not available |
| 146 | + |
| 147 | + raises exception if problems occur |
| 148 | + """ |
| 149 | + |
| 150 | + installdir=self.installdir_name(installer_name) |
| 151 | + |
| 152 | + if env==None: |
| 153 | + env={} |
| 154 | + |
| 155 | + env=dict(env) |
| 156 | + |
| 157 | + env["INSTALL_DIR"]=installdir |
| 158 | + env["DESTINATION_DIR"]=self.destination_dir |
| 159 | + env["NAME"]=installer_name |
| 160 | + env["REVISION"]=self.revision or '' |
| 161 | + env["TAG"]=self.tag or '' |
| 162 | + env["MYSQL_COMMAND"]=settings.mysql_command |
| 163 | + |
| 164 | + if isinstance(task,str): |
| 165 | + task2=[task] |
| 166 | + else: |
| 167 | + task2=list(task) |
| 168 | + |
| 169 | + dirlist=os.listdir(installdir) |
| 170 | + for filename in dirlist: |
| 171 | + if filename.startswith(task2[0]): |
| 172 | + task2[0]=os.path.join(installdir,filename) |
| 173 | + try: |
| 174 | + if settings.debug: |
| 175 | + print " === " +task+" === " |
| 176 | + print "environment",env |
| 177 | + print "task",task2 |
| 178 | + |
| 179 | + process=subprocess.Popen(task2 ,stdout=subprocess.PIPE, env=env) |
| 180 | + stdout,stderr=process.communicate() |
| 181 | + |
| 182 | + if settings.debug: |
| 183 | + print "stdout:",stdout |
| 184 | + print "stderr:",stderr |
| 185 | + print |
| 186 | + |
| 187 | + except Exception, e: |
| 188 | + #reraise with task and env info included, to give us a clue where we went wrong |
| 189 | + raise Exception((e,task2,env)) |
| 190 | + return stdout |
| 191 | + return None |
| 192 | + |
| 193 | + def can_exec(self, installer_name, task): |
| 194 | + """checks to see if there is an executable script available for the given task |
| 195 | + It's usually a good idea to call this before running exec_task |
| 196 | + |
| 197 | + returns: True if script exists""" |
| 198 | + installdir=self.installdir_name(installer_name) |
| 199 | + dirlist=os.listdir(installdir) |
| 200 | + for filename in dirlist: |
| 201 | + if filename.startswith(task) and os.access(os.path.join(installdir,filename), os.X_OK): |
| 202 | + return True |
| 203 | + |
| 204 | + return False |
| 205 | + |
| 206 | + |
| 207 | + def get_installed(self): |
| 208 | + """return a list of installed items""" |
| 209 | + installed=[] |
| 210 | + for installer_name in self.get_installers(): |
| 211 | + if self.is_installed(installer_name): |
| 212 | + installed.append(installer_name) |
| 213 | + |
| 214 | + return installed |
| 215 | + |
| 216 | + def is_installed(self,installer_name): |
| 217 | + """return true if the particular item is already installed""" |
| 218 | + if not self.destination_dir: |
| 219 | + raise Installer_Exception("Installation_system: Internal Error: No destination_dir provided") |
| 220 | + |
| 221 | + if self.can_exec(installer_name,"is_installed"): |
| 222 | + rv=self.exec_task(installer_name,"is_installed") |
| 223 | + if rv==None: |
| 224 | + print "Warning: "+installer_name+" does not support 'is_installed'." |
| 225 | + elif "true" in rv: |
| 226 | + return True |
| 227 | + elif "false" in rv: |
| 228 | + return False |
| 229 | + else: |
| 230 | + print "Warning: "+installer_name+" 'is_installed' provides unexpected output " |
| 231 | + else: |
| 232 | + print "Warning: "+installer_name+" has some problems with 'is_installed'." |
| 233 | + |
| 234 | + return None |
| 235 | + |
| 236 | + |
| 237 | + def get_info(self,installer_name): |
| 238 | + """print out information about the target from the info file""" |
| 239 | + info_filename=os.path.join(self.installdir_name(installer_name),"info") |
| 240 | + if not self.exists(installer_name): |
| 241 | + raise Installer_Exception("Can't find installer "+installer_name) |
| 242 | + |
| 243 | + if os.path.exists(info_filename): |
| 244 | + print file(info_filename).read() |
| 245 | + return True |
| 246 | + else: |
| 247 | + print "This installer provides no information." |
| 248 | + |
| 249 | + def install (self, installer_name): |
| 250 | + """Actually install the item |
| 251 | + returns True if installation successful, false if not, and None if unknown""" |
| 252 | + if not self.exists(installer_name): |
| 253 | + raise Installer_Exception("Can't find installer "+installer_name) |
| 254 | + |
| 255 | + if self.is_installed(installer_name): |
| 256 | + raise Installer_Exception(installer_name+" already installed.") |
| 257 | + #try: |
| 258 | + self.download(installer_name) |
| 259 | + self.install_settings(installer_name) |
| 260 | + self.setup(installer_name) |
| 261 | + # ... |
| 262 | + #except Installer_Exception: |
| 263 | + # pass |
| 264 | + #except: |
| 265 | + # raise |
| 266 | + |
| 267 | + #query the installer to see if ot thinks the component is properly installed |
| 268 | + # any flaws at this point are the fault of the installer :-P |
| 269 | + return self.is_installed(installer_name) |
| 270 | + |
| 271 | + def setup(self, installer_name, destination_dir=None): |
| 272 | + """perform actions needed to setup an extension post-download""" |
| 273 | + |
| 274 | + destination_dir=destination_dir or self.destination_dir |
| 275 | + if not destination_dir: |
| 276 | + raise Exception("Installation_system: Internal Error: No destination_dir provided") |
| 277 | + |
| 278 | + if not self.exists(installer_name): |
| 279 | + raise Installer_Exception("Can't find installer "+installer_name) |
| 280 | + |
| 281 | + self._setup(installer_name,destination_dir) |
| 282 | + |
| 283 | + def _setup(self, installer_name, destination_dir): |
| 284 | + """actually perform the setup required by setup (do not call directly)""" |
| 285 | + #silently fail if there's no setup script |
| 286 | + if not self.can_exec(installer_name,"setup"): |
| 287 | + return |
| 288 | + |
| 289 | + self.exec_task(installer_name,"setup") |
| 290 | + |
| 291 | + def download (self, installer_name, destination_dir=None): |
| 292 | + """perform actions needed to download all the files we need""" |
| 293 | + |
| 294 | + destination_dir=destination_dir or self.destination_dir |
| 295 | + if not destination_dir: |
| 296 | + raise Exception("Installation_system: Internal Error: No destination_dir provided") |
| 297 | + |
| 298 | + if not self.exists(installer_name): |
| 299 | + raise Installer_Exception("Can't find installer "+installer_name) |
| 300 | + |
| 301 | + self._download(installer_name, destination_dir) |
| 302 | + |
| 303 | + def _download(self, installer_name, destination_dir): |
| 304 | + """actually perform the download for download() (do not call directly)""" |
| 305 | + # if a particular step in the install procedure is not provided |
| 306 | + # we simply skip it |
| 307 | + if not self.can_exec(installer_name,"download"): |
| 308 | + print "notice: cannot execute download script for "+installer_name |
| 309 | + return |
| 310 | + |
| 311 | + self.exec_task(installer_name,"download") |
| 312 | + |
| 313 | + def install_settings(self,installer_name): |
| 314 | + """do setup for settings files, etc... override to do something useful""" |
| 315 | + pass |
| 316 | + |
| 317 | + def uninstall_settings(self,installer_name): |
| 318 | + """remove settings files etc... override to do something useful""" |
| 319 | + pass |
| 320 | + |
| 321 | + def uninstall (self, installer_name, destination_dir=None): |
| 322 | + """uninstall the component""" |
| 323 | + |
| 324 | + destination_dir=destination_dir or self.destination_dir |
| 325 | + if not destination_dir: |
| 326 | + raise Installer_Exception("Installation_system: Internal Error: No destination_dir provided") |
| 327 | + |
| 328 | + if not self.exists(installer_name): |
| 329 | + raise Installer_Exception("Can't find installer "+str(installer_name)) |
| 330 | + |
| 331 | + if not self.is_installed(installer_name): |
| 332 | + print installer_name+" does not appear to be installed" |
| 333 | + return |
| 334 | + |
| 335 | + |
| 336 | + self._uninstall(installer_name, destination_dir) |
| 337 | + |
| 338 | + self.uninstall_settings(installer_name) |
| 339 | + # use is_installed to determine success. |
| 340 | + return not self.is_installed(installer_name) |
| 341 | + |
| 342 | + def _uninstall(self,installer_name, destination_dir): |
| 343 | + """actually uninstall the component (do not call directly)""" |
| 344 | + # if a particular step in the install procedure is not provided |
| 345 | + # we simply skip it |
| 346 | + if self.can_exec(installer_name,"uninstall"): |
| 347 | + self.exec_task(installer_name,"uninstall") |
| 348 | + |
| 349 | + def get_extensionsdir(self): |
| 350 | + """return the relevant extensionsdir to look in""" |
| 351 | + extensionsdir=None |
| 352 | + if self.tag: |
| 353 | + extensionsdir=settings.tagsdir+"/"+self.tag+"/"+settings.extensionssubdir |
| 354 | + else: |
| 355 | + extensionsdir=settings.extensionsdir |
| 356 | + |
| 357 | + return extensionsdir |
Property changes on: trunk/testing/installer/installation_system.py |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 358 | + native |
Index: trunk/testing/util/environment/Uniwiki.sh |
— | — | @@ -0,0 +1,21 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +./installer.py uninstall mediawiki:UW_testsystem |
| 5 | + |
| 6 | +Tag=REL1_13_3 |
| 7 | + |
| 8 | +./installer.py install mediawiki:$Tag as UW_testsystem |
| 9 | + |
| 10 | +./installer.py install extension:Configure tag $Tag in UW_testsystem |
| 11 | + |
| 12 | +./installer.py install extension:CssHooks in UW_testsystem |
| 13 | +./installer.py install extension:Javascript in UW_testsystem |
| 14 | +./installer.py install extension:MooTools12core in UW_testsystem |
| 15 | +./installer.py install extension:AutoCreateCategoryPages in UW_testsystem |
| 16 | +./installer.py install extension:GenericEditPage in UW_testsystem |
| 17 | +./installer.py install extension:CatBoxAtTop in UW_testsystem |
| 18 | +./installer.py install extension:CustomToolbar in UW_testsystem |
| 19 | +./installer.py install extension:Layouts in UW_testsystem |
| 20 | +./installer.py install extension:Authors in UW_testsystem |
| 21 | +./installer.py install extension:CreatePage in UW_testsystem |
| 22 | + |
Property changes on: trunk/testing/util/environment/Uniwiki.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 23 | + |
Index: trunk/testing/util/environment/Wikipedia.sh |
— | — | @@ -0,0 +1,89 @@ |
| 2 | +#!/bin/sh |
| 3 | +cd ../../installer |
| 4 | + |
| 5 | +revision="48811" |
| 6 | +echo $revision |
| 7 | + |
| 8 | +#CentralAuth and GlobalBlocking fail ... global ? |
| 9 | + |
| 10 | +./installer.py uninstall mediawiki:WMF_testsystem |
| 11 | + |
| 12 | +./installer.py install mediawiki: revision $revision as WMF_testsystem |
| 13 | + |
| 14 | +./installer.py install naive:CategoryTree revision $revision in WMF_testsystem |
| 15 | +#./installer.py install naive:CentralAuth revision $revision in WMF_testsystem |
| 16 | + |
| 17 | +# needs to run an install script to add table(s) to database |
| 18 | +./installer.py install extension:CheckUser revision $revision in WMF_testsystem |
| 19 | + |
| 20 | +#:{{done}} -- this extension shows twice with different numbers.. this is the highest |
| 21 | +./installer.py install naive:Cite revision $revision in WMF_testsystem |
| 22 | +# SpecialCite shares the Cite directory in SVN. We split them into two directories |
| 23 | +./installer.py install extension:SpecialCite revision $revision in WMF_testsystem |
| 24 | + |
| 25 | +./installer.py install naive:Collection revision $revision in WMF_testsystem |
| 26 | + |
| 27 | +# non standard include |
| 28 | +./installer.py install extension:CrossNamespaceLinks revision $revision in WMF_testsystem |
| 29 | + |
| 30 | +./installer.py install naive:ExpandTemplates revision $revision in WMF_testsystem |
| 31 | + |
| 32 | +# this extension is marked as obsolete |
| 33 | +./installer.py install naive:Makebot revision $revision in WMF_testsystem |
| 34 | +# this extension is marked as obsolete |
| 35 | +#./installer.py install naive:Makesysop revision $revision in WMF_testsystem |
| 36 | + |
| 37 | +# this is not an extension that you can install from SVN |
| 38 | +./installer.py install extension:OAI revision $revision in WMF_testsystem |
| 39 | + |
| 40 | +# needs to be an extension as it requires new tables and stuff |
| 41 | +./installer.py install extension:Oversight revision $revision in WMF_testsystem |
| 42 | + |
| 43 | +# needs to be an extension as it requires a non standard entry in LocalSettings |
| 44 | +./installer.py install extension:Renameuser revision $revision in WMF_testsystem |
| 45 | + |
| 46 | +./installer.py install naive:SiteMatrix revision $revision in WMF_testsystem |
| 47 | +./installer.py install naive:CharInsert revision revision in WMF_testsystem |
| 48 | + |
| 49 | +# requires ploticus, requires settings |
| 50 | +#./installer.py install naive:EasyTimeline revision $revision in WMF_testsystem |
| 51 | + |
| 52 | +./installer.py install extension:ImageMap revision $revision in WMF_testsystem |
| 53 | +./installer.py install extension:InputBox revision $revision in WMF_testsystem |
| 54 | +./installer.py install extension:ParserFunctions in WMF_testsystem |
| 55 | +./installer.py install naive:Poem revision $revision in WMF_testsystem |
| 56 | +./installer.py install naive:SyntaxHighlight_GeSHi revision $revision in WMF_testsystem |
| 57 | +./installer.py install naive:wikihiero revision $revision in WMF_testsystem |
| 58 | +./installer.py install extension:OggHandler revision $revision in WMF_testsystem |
| 59 | + |
| 60 | +# AntiSpoof needs to be installed prior to AbuseFilters |
| 61 | +./installer.py install naive:AntiSpoof revision $revision in WMF_testsystem |
| 62 | + |
| 63 | +# needs further configurations.. needs to have a file added |
| 64 | +#./installer.py install naive:AbuseFilter revision $revision in WMF_testsystem |
| 65 | + |
| 66 | +./installer.py install naive:AntiBot revision $revision in WMF_testsystem |
| 67 | +./installer.py install naive:AssertEdit revision $revision in WMF_testsystem |
| 68 | +./installer.py install naive:CentralNotice revision $revision in WMF_testsystem |
| 69 | +./installer.py install naive:ConfirmEdit revision $revision in WMF_testsystem |
| 70 | +./installer.py install naive:DismissableSiteNotice revision $revision in WMF_testsystem |
| 71 | +./installer.py install naive:Gadgets revision $revision in WMF_testsystem |
| 72 | + |
| 73 | +# This expects global pre-exising functionality |
| 74 | +#./installer.py install naive:GlobalBlocking revision $revision in WMF_testsystem |
| 75 | + |
| 76 | +./installer.py install naive:MWSearch revision $revision in WMF_testsystem |
| 77 | +./installer.py install naive:OpenSearchXml revision $revision in WMF_testsystem |
| 78 | +./installer.py install naive:SimpleAntiSpam in WMF_testsystem |
| 79 | +./installer.py install naive:SpamBlacklist revision $revision in WMF_testsystem |
| 80 | +./installer.py install naive:TitleBlacklist in WMF_testsystem |
| 81 | +./installer.py install extension:TitleKey revision $revision in WMF_testsystem |
| 82 | +./installer.py install naive:TorBlock revision $revision in WMF_testsystem |
| 83 | + |
| 84 | +# result is an exception error |
| 85 | +#./installer.py install naive:TrustedXFF revision $revision in WMF_testsystem |
| 86 | + |
| 87 | +./installer.py install naive:UsernameBlacklist in WMF_testsystem |
| 88 | +./installer.py install naive:WikimediaMessages in WMF_testsystem |
| 89 | + |
| 90 | + |
Property changes on: trunk/testing/util/environment/Wikipedia.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 91 | + |
Index: trunk/testing/util/environment/Metavid.sh |
— | — | @@ -0,0 +1,21 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +revision=48811 |
| 5 | + |
| 6 | + |
| 7 | +./installer.py uninstall mediawiki:MetavidWiki |
| 8 | + |
| 9 | +./installer.py install mediawiki: revision 48941 as MetavidWiki |
| 10 | + |
| 11 | +./installer.py install extension:Configure in MetavidWiki |
| 12 | + |
| 13 | +./installer.py install extension:SemanticMediaWiki in MetavidWiki |
| 14 | +./installer.py install extension:MetavidWiki in MetavidWiki |
| 15 | + |
| 16 | +./installer.py install extension:ParserFunctions in MetavidWiki |
| 17 | +./installer.py install extension:ExternalData in MetavidWiki |
| 18 | +#./installer.py install extension:Cite in MetavidWiki |
| 19 | + |
| 20 | +./installer.py install naive:ConfirmEdit in MetavidWiki |
| 21 | +./installer.py install extension:OggHandler in MetavidWiki |
| 22 | + |
Property changes on: trunk/testing/util/environment/Metavid.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 23 | + |
Index: trunk/testing/util/environment/Referata.sh |
— | — | @@ -0,0 +1,30 @@ |
| 2 | +#!/bin/sh |
| 3 | + |
| 4 | +./installer.py uninstall mediawiki:SMW_testsystem |
| 5 | + |
| 6 | +Tag=REL1_14_0 |
| 7 | + |
| 8 | +./installer.py install mediawiki:$Tag as SMW_testsystem |
| 9 | + |
| 10 | +./installer.py install extension:Configure in SMW_testsystem |
| 11 | + |
| 12 | +./installer.py install extension:SemanticMediaWiki in SMW_testsystem |
| 13 | +./installer.py install extension:SemanticForms in SMW_testsystem |
| 14 | +./installer.py install extension:SemanticDrilldown in SMW_testsystem |
| 15 | +./installer.py install extension:SemanticCompoundQueries in SMW_testsystem |
| 16 | +./installer.py install extension:SemanticGoogleMaps in SMW_testsystem |
| 17 | +./installer.py install extension:SemanticResultFormats in SMW_testsystem |
| 18 | + |
| 19 | +./installer.py install extension:ExternalData in SMW_testsystem |
| 20 | +./installer.py install extension:DataTransfer in SMW_testsystem |
| 21 | +./installer.py install extension:ParserFunctions in SMW_testsystem |
| 22 | +./installer.py install extension:Renameuser revision 37407 in SMW_testsystem |
| 23 | +./installer.py install naive:ReplaceText in SMW_testsystem |
| 24 | +./installer.py install naive:Cite revision 37577 in SMW_testsystem |
| 25 | +./installer.py install extension:HeaderTabs in SMW_testsystem |
| 26 | +./installer.py install naive:StringFunctions in SMW_testsystem |
| 27 | +./installer.py install naive:ConfirmEdit in SMW_testsystem |
| 28 | +./installer.py install extension:GoogleGeocoder in SMW_testsystem |
| 29 | +./installer.py install naive:Widgets in SMW_testsystem |
| 30 | + |
| 31 | +./installer.py install naive:DeleteBatch tag $Tag in SMW_testsystem |
Property changes on: trunk/testing/util/environment/Referata.sh |
___________________________________________________________________ |
Added: svn:executable |
1 | 32 | + |
Index: trunk/testing/util/scripted_clean.py |
— | — | @@ -0,0 +1,90 @@ |
| 2 | +#!/usr/bin/env python |
| 3 | +import sys |
| 4 | +import os, os.path |
| 5 | +sys.path.append("..") |
| 6 | + |
| 7 | + |
| 8 | +import wiki_works |
| 9 | +from installer.scripted_installer import Scripted_Installer |
| 10 | +from installer.mediawiki_installer import Mediawiki_Installer |
| 11 | +from installer.isolation import check_isolation,difftests |
| 12 | +# settings |
| 13 | + |
| 14 | +target_wiki='test' |
| 15 | +target_wiki2='test2' |
| 16 | +resultfile=file("scripted_results","w") |
| 17 | +mw_revision="REL1_14_0" |
| 18 | + |
| 19 | +def test_extension(extension_name): |
| 20 | + result=None |
| 21 | + try: |
| 22 | + installer=Scripted_Installer() |
| 23 | + installer.set_instance(target_wiki) |
| 24 | + installer.install(extension_name) |
| 25 | + result=wiki_works.wiki_works(target_wiki) |
| 26 | + print "result=",result |
| 27 | + installer.uninstall(extension_name) |
| 28 | + |
| 29 | + except Exception,e: |
| 30 | + print e |
| 31 | + |
| 32 | + return result |
| 33 | + |
| 34 | +def newenvironment(): |
| 35 | + """setup a base environment, with a backup wiki in case an extension actually fails""" |
| 36 | + mwinstaller=Mediawiki_Installer() |
| 37 | + |
| 38 | + #remove old stuff |
| 39 | + try: |
| 40 | + mwinstaller.uninstall(target_wiki) |
| 41 | + except Exception,e: #? |
| 42 | + raise e |
| 43 | + |
| 44 | + try: |
| 45 | + mwinstaller.uninstall(target_wiki2) |
| 46 | + except Exception,e: #? |
| 47 | + raise e |
| 48 | + mwinstaller.install(installer_name=mw_revision, as_alias=target_wiki) |
| 49 | + difftests(target_wiki) |
| 50 | + mwinstaller.duplicate(target_wiki, target_wiki2) |
| 51 | + |
| 52 | + |
| 53 | +def clear(): |
| 54 | + """When an extension fails to uninstall cleanly, uninstall the entire wiki, and |
| 55 | + copy the backup back in its place""" |
| 56 | + mwinstaller=Mediawiki_Installer() |
| 57 | + mwinstaller.uninstall(target_wiki) |
| 58 | + mwinstaller.duplicate(target_wiki2, target_wiki) |
| 59 | + |
| 60 | + |
| 61 | +def is_clean(): |
| 62 | + return check_isolation(["check_isolation",target_wiki]) |
| 63 | + |
| 64 | + |
| 65 | + |
| 66 | +if __name__=="__main__": |
| 67 | + newenvironment() |
| 68 | + installer=Scripted_Installer() |
| 69 | + installer.set_instance(target_wiki) |
| 70 | + scripted_extensions=installer.get_installers() |
| 71 | + for extension_name in scripted_extensions: |
| 72 | + print extension_name, |
| 73 | + result=test_extension(extension_name) |
| 74 | + print result |
| 75 | + r="Unknown" |
| 76 | + if result: |
| 77 | + r="SCRIPTED_INSTALL_SEEMS_OK" |
| 78 | + else: |
| 79 | + r="SCRIPTED_INSTALL_BREAKS" |
| 80 | + |
| 81 | + clean=is_clean() |
| 82 | + if clean: |
| 83 | + r+=" UNINSTALL_CLEAN" |
| 84 | + else: |
| 85 | + r+=" UNINSTALL_DIRTY" |
| 86 | + clear() |
| 87 | + |
| 88 | + |
| 89 | + resultfile.write("* "+extension_name+" "+r+"\n") |
| 90 | + resultfile.flush() |
| 91 | + resultfile.close() |
Property changes on: trunk/testing/util/scripted_clean.py |
___________________________________________________________________ |
Added: svn:executable |
1 | 92 | + |
Index: trunk/testing/util/allextension.py |
— | — | @@ -0,0 +1,44 @@ |
| 2 | +#!/usr/bin/env python |
| 3 | +import sys |
| 4 | +import os, os.path |
| 5 | +sys.path.append("..") |
| 6 | + |
| 7 | + |
| 8 | +import wiki_works |
| 9 | +from installer.extension_installer2 import extension_installer2 |
| 10 | +# settings |
| 11 | + |
| 12 | +target_wiki='test' |
| 13 | +resultfile=file("extension_results","w") |
| 14 | + |
| 15 | + |
| 16 | +def test_extension(extension_name): |
| 17 | + result=None |
| 18 | + try: |
| 19 | + installer=extension_installer2() |
| 20 | + installer.set_instance(target_wiki) |
| 21 | + installer.install(extension_name) |
| 22 | + result=wiki_works.wiki_works(target_wiki) |
| 23 | + print "result=",result |
| 24 | + installer.uninstall(extension_name) |
| 25 | + except Exception,e: |
| 26 | + print e |
| 27 | + |
| 28 | + return result |
| 29 | + |
| 30 | +if __name__=="__main__": |
| 31 | + installer=extension_installer2() |
| 32 | + installer.set_instance(target_wiki) |
| 33 | + extensions=installer.get_installers() |
| 34 | + for extension_name in extensions: |
| 35 | + print extension_name, |
| 36 | + result=test_extension(extension_name) |
| 37 | + print result |
| 38 | + r="Unknown" |
| 39 | + if result: |
| 40 | + r="EXTENSION_INSTALL_SEEMS_OK" |
| 41 | + else: |
| 42 | + r="EXTENSION_INSTALL_BREAKS" |
| 43 | + resultfile.write("* "+extension_name+" "+r+"\n") |
| 44 | + resultfile.flush() |
| 45 | + resultfile.close() |
Property changes on: trunk/testing/util/allextension.py |
___________________________________________________________________ |
Added: svn:executable |
1 | 46 | + * |
Index: trunk/testing/util/wiki_works.py |
— | — | @@ -0,0 +1,57 @@ |
| 2 | +#!/usr/bin/python |
| 3 | +import sys, os.path |
| 4 | +sys.path.append("..") |
| 5 | + |
| 6 | +import installer.settings as installersettings |
| 7 | +import wikiation_exttest.settings #for some reason |
| 8 | +from wikiation_exttest.logindata import LoginData |
| 9 | + |
| 10 | + |
| 11 | + |
| 12 | +def do_test(login): |
| 13 | + try: |
| 14 | + site=login.login() |
| 15 | + ver=site.live_version() |
| 16 | + if isinstance(ver,list): |
| 17 | + return True |
| 18 | + else: |
| 19 | + return False |
| 20 | + except Exception, e: |
| 21 | + return False |
| 22 | + # or, if in doubt |
| 23 | + return False # anyway |
| 24 | + |
| 25 | +def make_login(target): |
| 26 | + login=LoginData( |
| 27 | + name="Does it blend", |
| 28 | + protocol='http', |
| 29 | + server='localhost', |
| 30 | + scriptpath=installersettings.base_scriptpath+target, |
| 31 | + lang='en', |
| 32 | + encoding='utf-8', |
| 33 | + user='admin', |
| 34 | + password='admin1234' |
| 35 | + ) |
| 36 | + return login |
| 37 | + |
| 38 | + |
| 39 | +def wiki_works(target): |
| 40 | + login=make_login(target) |
| 41 | + result=do_test(login) |
| 42 | + return result |
| 43 | + |
| 44 | +def main(): |
| 45 | + if len(sys.argv)<2: |
| 46 | + print "syntax: wiki_works.py instance_name" |
| 47 | + sys.exit(1) |
| 48 | + target=sys.argv[1] |
| 49 | + |
| 50 | + if wiki_works(target): |
| 51 | + print "wiki works" |
| 52 | + sys.exit(0) |
| 53 | + else: |
| 54 | + print "wiki doesn't work" |
| 55 | + sys.exit(1) |
| 56 | + |
| 57 | +if __name__=="__main__": |
| 58 | + main() |
Property changes on: trunk/testing/util/wiki_works.py |
___________________________________________________________________ |
Added: svn:executable |
1 | 59 | + |
Index: trunk/testing/util/allnaive.py |
— | — | @@ -0,0 +1,44 @@ |
| 2 | +#!/usr/bin/env python |
| 3 | +import sys |
| 4 | +import os, os.path |
| 5 | +sys.path.append("..") |
| 6 | + |
| 7 | + |
| 8 | +import wiki_works |
| 9 | +from installer.naive_installer import Naive_Installer |
| 10 | +# settings |
| 11 | + |
| 12 | +target_wiki='test' |
| 13 | +resultfile=file("naive_results","w") |
| 14 | + |
| 15 | + |
| 16 | +def test_extension(extension_name): |
| 17 | + result=None |
| 18 | + try: |
| 19 | + installer=Naive_Installer() |
| 20 | + installer.set_instance(target_wiki) |
| 21 | + installer.install(extension_name) |
| 22 | + result=wiki_works.wiki_works(target_wiki) |
| 23 | + print "result=",result |
| 24 | + installer.uninstall(extension_name) |
| 25 | + except Exception,e: |
| 26 | + print e |
| 27 | + |
| 28 | + return result |
| 29 | + |
| 30 | +if __name__=="__main__": |
| 31 | + installer=Naive_Installer() |
| 32 | + installer.set_instance(target_wiki) |
| 33 | + naive_extensions=installer.get_installers() |
| 34 | + for extension_name in naive_extensions: |
| 35 | + print extension_name, |
| 36 | + result=test_extension(extension_name) |
| 37 | + print result |
| 38 | + r="Unknown" |
| 39 | + if result: |
| 40 | + r="NAIVE_INSTALL_SEEMS_OK" |
| 41 | + else: |
| 42 | + r="NAIVE_INSTALL_BREAKS" |
| 43 | + resultfile.write("* "+extension_name+" "+r+"\n") |
| 44 | + resultfile.flush() |
| 45 | + resultfile.close() |
Property changes on: trunk/testing/util/allnaive.py |
___________________________________________________________________ |
Added: svn:executable |
1 | 46 | + |
Index: trunk/testing/wikiation_exttest/LICENSE |
— | — | @@ -0,0 +1,22 @@ |
| 2 | +This software, copyright (C) 2008-2009 by Wikiation. This software is developed by Kim Bruning. |
| 3 | +Copyright (C) 2009 Kim Bruning |
| 4 | + |
| 5 | +Permission is hereby granted, free of charge, to any person obtaining a copy |
| 6 | +of this software and associated documentation files (the "Software"), to deal |
| 7 | +in the Software without restriction, including without limitation the rights to |
| 8 | +use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies |
| 9 | +of the Software, and to permit persons to whom the Software is furnished to do |
| 10 | +so, subject to the following conditions: |
| 11 | + |
| 12 | +The above copyright notice and this permission notice shall be included in all |
| 13 | +copies or substantial portions of the Software. |
| 14 | + |
| 15 | +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR |
| 16 | +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, |
| 17 | +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE |
| 18 | +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER |
| 19 | +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, |
| 20 | +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE |
| 21 | +SOFTWARE. |
| 22 | + |
| 23 | + |
Property changes on: trunk/testing/wikiation_exttest/LICENSE |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 24 | + native |
Index: trunk/testing/wikiation_exttest/base_family.py |
— | — | @@ -0,0 +1,85 @@ |
| 2 | +# -*- coding: utf-8 -*- # REQUIRED |
| 3 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 4 | +# This software is developed by Kim Bruning. |
| 5 | +# |
| 6 | +# Distributed under the terms of the MIT license. |
| 7 | + |
| 8 | + |
| 9 | +import sys, settings |
| 10 | +if settings.pywikipedia_path not in sys.path: |
| 11 | + sys.path.append(settings.pywikipedia_path) |
| 12 | + |
| 13 | +import config, family, urllib # REQUIRED |
| 14 | +class Family(family.Family): # REQUIRED |
| 15 | + """friendlier version of tghe pywikipedia family class. |
| 16 | + We can use this in conjunction with none-pywikipedia |
| 17 | + config files.""" |
| 18 | + def __init__(self, |
| 19 | + name='test', |
| 20 | + protocol='http', |
| 21 | + server='localhost', |
| 22 | + scriptpath='/revisions/REL1.13.2', |
| 23 | + version='1.13.2', |
| 24 | + lang='nl', |
| 25 | + encoding='utf-8', |
| 26 | + api_supported=False, |
| 27 | + RversionTab=None # very rare beast, you probably won't need it. |
| 28 | + ): |
| 29 | + |
| 30 | + family.Family.__init__(self) |
| 31 | + self.name = name # REQUIRED; replace with actual name |
| 32 | + |
| 33 | + self.langs = { # REQUIRED |
| 34 | + lang: server, # Include one line for each wiki in family |
| 35 | + } |
| 36 | + self._protocol=protocol |
| 37 | + self._scriptpath=scriptpath |
| 38 | + self._version=version |
| 39 | + self._encoding=encoding |
| 40 | + # may as well add these here, so we can have a 1 stop shop |
| 41 | + self._lang=lang |
| 42 | + self._server=server |
| 43 | + self._api_supported=api_supported |
| 44 | + self._RversionTab=RversionTab |
| 45 | + |
| 46 | + def protocol(self, code): |
| 47 | + """ |
| 48 | + Can be overridden to return 'https'. Other protocols are not supported. |
| 49 | + """ |
| 50 | + return self._protocol |
| 51 | + |
| 52 | + def scriptpath(self, code): |
| 53 | + """The prefix used to locate scripts on this wiki. |
| 54 | + |
| 55 | + This is the value displayed when you enter {{SCRIPTPATH}} on a |
| 56 | + wiki page (often displayed at [[Help:Variables]] if the wiki has |
| 57 | + copied the master help page correctly). |
| 58 | + |
| 59 | + The default value is the one used on Wikimedia Foundation wikis, |
| 60 | + but needs to be overridden in the family file for any wiki that |
| 61 | + uses a different value. |
| 62 | + |
| 63 | + """ |
| 64 | + return self._scriptpath |
| 65 | + |
| 66 | + # IMPORTANT: if your wiki does not support the api.php interface, |
| 67 | + # you must uncomment the second line of this method: |
| 68 | + def apipath(self, code): |
| 69 | + if self._api_supported: |
| 70 | + return '%s/api.php' % self.scriptpath(code) |
| 71 | + else: |
| 72 | + raise NotImplementedError, "%s wiki family does not support api.php" % self.name |
| 73 | + |
| 74 | + # Which version of MediaWiki is used? |
| 75 | + def version(self, code): |
| 76 | + # Replace with the actual version being run on your wiki |
| 77 | + return self._version |
| 78 | + |
| 79 | + def code2encoding(self, code): |
| 80 | + """Return the encoding for a specific language wiki""" |
| 81 | + # Most wikis nowadays use UTF-8, but change this if yours uses |
| 82 | + # a different encoding |
| 83 | + return self._encoding |
| 84 | + |
| 85 | + def RversionTab(self, code): |
| 86 | + return self._RversionTab |
Property changes on: trunk/testing/wikiation_exttest/base_family.py |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 87 | + native |
Index: trunk/testing/wikiation_exttest/wikiation_exttest.py |
— | — | @@ -0,0 +1,471 @@ |
| 2 | +#!/usr/bin/python |
| 3 | +# -*- coding: utf-8 -*- |
| 4 | + |
| 5 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 6 | +# This software is developed by Kim Bruning. |
| 7 | +# |
| 8 | +# Distributed under the terms of the MIT license |
| 9 | + |
| 10 | +import sys,os |
| 11 | +import settings |
| 12 | + |
| 13 | +sys.path.append(settings.pywikipedia_path) |
| 14 | +cwd=os.getcwd() |
| 15 | +os.chdir(settings.pywikipedia_path) |
| 16 | +import wikipedia |
| 17 | +import login |
| 18 | +import catlib |
| 19 | +os.chdir(cwd) |
| 20 | + |
| 21 | +import difflib |
| 22 | +import imp |
| 23 | +from exttest import Test, PageReference |
| 24 | +from xml.etree import ElementTree |
| 25 | + |
| 26 | + |
| 27 | +class MissingDataException (Exception): |
| 28 | + pass |
| 29 | + |
| 30 | +class WikiWebTest: |
| 31 | + """ |
| 32 | + Run extension tests on a mediawiki wiki. |
| 33 | + """ |
| 34 | + |
| 35 | + """open marker for test sequence , must be long and unique""" |
| 36 | + open=u"---START of wikiation test sequence---" |
| 37 | + """close marker for test sequence, must be long and unique""" |
| 38 | + close=u"---END of wikiation test sequence---" |
| 39 | + |
| 40 | + |
| 41 | + def __init__ (self,site): |
| 42 | + self.site=site |
| 43 | + self.html=None |
| 44 | + |
| 45 | + def feedWikiText (self,wikitext, pageName="Bot_test"): |
| 46 | + """feed wikitext to the server, and get html back""" |
| 47 | + |
| 48 | + #make a new page with just the wikitext |
| 49 | + page=wikipedia.Page(self.site, pageName) |
| 50 | + page.put(wikitext) |
| 51 | + |
| 52 | + #get raw html for the page back |
| 53 | + address=self.site.get_address(pageName) |
| 54 | + html=self.site.getUrl(address) |
| 55 | + |
| 56 | + return html |
| 57 | + |
| 58 | + |
| 59 | + def genTest(self,codeToBeTested): |
| 60 | + """enclose codeToBeTested in test sequence""" |
| 61 | + |
| 62 | + if codeToBeTested==None: |
| 63 | + raise MissingDataException("code to be tested is Null"); |
| 64 | + |
| 65 | + testCode=WikiWebTest.open+codeToBeTested+WikiWebTest.close |
| 66 | + |
| 67 | + return testCode |
| 68 | + |
| 69 | + |
| 70 | + def cleanFeed(self,codeToBeTested, pageName="Bot_test"): |
| 71 | + """like feedWikiText, but return just the bit we're actually |
| 72 | + interested in""" |
| 73 | + |
| 74 | + testCode=self.genTest(codeToBeTested) |
| 75 | + html=self.feedWikiText(testCode,pageName) |
| 76 | + enclosedHtml=self.getEnclosed(html) |
| 77 | + |
| 78 | + self.html=html |
| 79 | + return enclosedHtml |
| 80 | + |
| 81 | + |
| 82 | + def getEnclosed(self,html): |
| 83 | + """pull the code-of-interest out from between the open and close markers""" |
| 84 | + |
| 85 | + startOpen=html.index(WikiWebTest.open) |
| 86 | + start=startOpen+len(WikiWebTest.open) |
| 87 | + |
| 88 | + end=html.index(WikiWebTest.close) |
| 89 | + |
| 90 | + return html[start:end] |
| 91 | + |
| 92 | + |
| 93 | + def test(self, wikiText, expectHtml, test=None, pageName="Bot_test"): |
| 94 | + """do the test, report comparison as plain text for now |
| 95 | + I tried the htmltable, but mediawiki refuses to eat it :-/""" |
| 96 | + |
| 97 | + actualHtml=self.cleanFeed(wikiText, pageName) |
| 98 | + |
| 99 | + actualHtmlLines=actualHtml.splitlines(1); |
| 100 | + expectHtmlLines=expectHtml.splitlines(1); |
| 101 | + |
| 102 | + differ=difflib.Differ() |
| 103 | + diff_text_list= list(differ.compare(actualHtmlLines,expectHtmlLines)) |
| 104 | + diff_text="\n".join(diff_text_list) |
| 105 | + |
| 106 | + if test: |
| 107 | + if actualHtml==expectHtml: |
| 108 | + test.ok=True |
| 109 | + |
| 110 | + if actualHtml!=expectHtml: |
| 111 | + test.ok=False |
| 112 | + |
| 113 | + test.diff=diff_text |
| 114 | + test.result=actualHtml |
| 115 | + |
| 116 | + return diff_text |
| 117 | + |
| 118 | +def _title(title): |
| 119 | + """ |
| 120 | + ----------------------- |
| 121 | + | make a pretty title | |
| 122 | + ----------------------- |
| 123 | + """ |
| 124 | + titlerow='| '+title+' |' |
| 125 | + stripe="\n"+( "-"*len(titlerow) )+"\n" |
| 126 | + return stripe+titlerow+stripe |
| 127 | + |
| 128 | +def runtestset(webtest, tests, pageName=None) : |
| 129 | + """Take a List of Test-s, and feed them to WikiWebTest to run them""" |
| 130 | + |
| 131 | + if pageName==None: |
| 132 | + pageName=settings.pageName |
| 133 | + |
| 134 | + for test in tests: |
| 135 | + |
| 136 | + print _title(test.name+' :') |
| 137 | + if test.enable: |
| 138 | + diff=webtest.test(test.code, test.expect, test, pageName) |
| 139 | + print unicode(diff).encode('utf8') |
| 140 | + if test.ok: |
| 141 | + print "\n--OK!\n" |
| 142 | + elif test.known_bug: |
| 143 | + print "\n--OK, known bug.\n" |
| 144 | + else: |
| 145 | + print "\n--FAIL\n" |
| 146 | + else: |
| 147 | + print "test not enabled\n" |
| 148 | + |
| 149 | + |
| 150 | + print _title("TESTSET COMPLETED") |
| 151 | + |
| 152 | + |
| 153 | +def _isCommented(text,offset,tagstart): |
| 154 | + """ |
| 155 | + For a given position in a string, determine if it is located |
| 156 | + in a comment block. Used here to check whether <exttest> or |
| 157 | + </exttest> is located inside a comment. |
| 158 | + 'text' is the text to check, |
| 159 | + 'offset' is the offset from start of string. |
| 160 | + 'tagstart' is the position to check (start of our tag) |
| 161 | + """ |
| 162 | + endcommentp=0 |
| 163 | + while True: |
| 164 | + commentp=text.find("<!--",offset,tagstart) |
| 165 | + if commentp!=-1: |
| 166 | + endcommentp=text.find("-->",commentp,tagstart) |
| 167 | + if endcommentp==-1: |
| 168 | + break |
| 169 | + offset=endcommentp+len("-->") |
| 170 | + else: |
| 171 | + break |
| 172 | + |
| 173 | + return endcommentp==-1 |
| 174 | + |
| 175 | + |
| 176 | + |
| 177 | +def article2testset(article): |
| 178 | + """parse a pywikipedia Page (article), to yield a testset""" |
| 179 | + text=article.get() |
| 180 | + testset=[] |
| 181 | + count=0 |
| 182 | + offset=0 |
| 183 | + while True: |
| 184 | + startPosition=text.find("<exttest>",offset) |
| 185 | + if startPosition==-1: |
| 186 | + break |
| 187 | + |
| 188 | + if _isCommented(text,offset,startPosition): |
| 189 | + offset=startPosition+1 |
| 190 | + continue |
| 191 | + |
| 192 | + endTagPosition=text.find("</exttest>",offset) |
| 193 | + |
| 194 | + if endTagPosition==-1: |
| 195 | + raise Exception("malformed xml in page "+str(article)) |
| 196 | + |
| 197 | + if _isCommented(text,offset,endTagPosition): |
| 198 | + offset=endTagPosition+1 |
| 199 | + continue |
| 200 | + |
| 201 | + endPosition=endTagPosition+len("</exttest>") |
| 202 | + |
| 203 | + xmlString=text[startPosition:endPosition] |
| 204 | + try: |
| 205 | + test=xml2testset(unicode(xmlString).encode('utf8')) |
| 206 | + except Exception, e: |
| 207 | + raise Exception("Problem loading page [["+article.title()+"]]: ",e) |
| 208 | + test[0].pageReference=PageReference( |
| 209 | + pageTitle=article.title(), |
| 210 | + startPosition=startPosition, |
| 211 | + endPosition=endPosition) |
| 212 | + count+=1 |
| 213 | + if settings.tests_per_page!=0 and count>settings.tests_per_page: |
| 214 | + test[0].enable=False |
| 215 | + |
| 216 | + testset+=test |
| 217 | + |
| 218 | + offset=endPosition |
| 219 | + |
| 220 | + return testset |
| 221 | + |
| 222 | +def tests2page(tests, site, pageTitle): |
| 223 | + """Write a test report back to a wikipage. |
| 224 | + Only operates between <extresult></extresult> tags; |
| 225 | + this way, if something goes wrong, hopefully we won't |
| 226 | + b0rk the _entire_ page. |
| 227 | + tests is the tests relevant to this page, site is the pywikipedia |
| 228 | + site object for this website, and pageTitle is the title of the |
| 229 | + page on the site.""" |
| 230 | + page=wikipedia.Page(site,pageTitle) |
| 231 | + text=page.get() |
| 232 | + offset=0 |
| 233 | + for test in tests: |
| 234 | + ref=test.pageReference |
| 235 | + |
| 236 | + s=text.find("<extresult>",ref.endPosition+offset) |
| 237 | + startPosition=s+len("<extresult>") |
| 238 | + endPosition=text.find("</extresult>",startPosition) |
| 239 | + if s!=-1 and endPosition!=-1: |
| 240 | + before=text[:startPosition] |
| 241 | + middle="\n<!-- BOT OUTPUT-->\n;Result " |
| 242 | + if test.ok: |
| 243 | + middle+='<span style="color:green">OK</span>' |
| 244 | + elif test.ok==False: |
| 245 | + if test.known_bug: |
| 246 | + middle+='<span style="color:yellow">Known Bug</span>' |
| 247 | + else: |
| 248 | + middle+='<span style="color:red">Differs from expected</span>' |
| 249 | + else: |
| 250 | + middle+='<span style="color:orange">unknown</span>' |
| 251 | + if test.enable: |
| 252 | + middle+="\n;html output\n" |
| 253 | + middle+="<pre>\n"+test.result+"\n</pre>" |
| 254 | + middle+="\n;diff\n" |
| 255 | + middle+="<pre>\n"+test.diff+"</pre>" |
| 256 | + else: |
| 257 | + middle+="\n;Only "+str(settings.tests_per_page)+" tests are allowed per page" |
| 258 | + middle+="\n<!-- END OF BOT OUTPUT-->\n" |
| 259 | + after=text[endPosition:] |
| 260 | + text=before+middle+after |
| 261 | + offset+=len(middle)-(endPosition-startPosition) |
| 262 | + |
| 263 | + page.put(text,"testresult") |
| 264 | + |
| 265 | +def testset2pages(testset, site): |
| 266 | + """Goes through testset, and writes results back to each page |
| 267 | + on the pywikipedia site. |
| 268 | + In the case case where multiple tests per page are permitted, |
| 269 | + testset results are grouped by page, so that only 1 write |
| 270 | + needs to be done per page.""" |
| 271 | + byPage={} |
| 272 | + # reorganize tests by page so we can |
| 273 | + # do a page at a time |
| 274 | + for test in testset: |
| 275 | + title=test.pageReference.pageTitle |
| 276 | + if title not in byPage: |
| 277 | + byPage[title]=[] |
| 278 | + byPage[title].append(test) |
| 279 | + |
| 280 | + for title, tests in byPage.iteritems(): |
| 281 | + tests2page(tests, site, title) |
| 282 | + |
| 283 | + |
| 284 | + |
| 285 | +def category2testset(site,categoryName="Automated tests"): |
| 286 | + """Scan a category on the given pywikipedia site for valid |
| 287 | + extension tests, and generate a testset (a list of Test objects)""" |
| 288 | + category=catlib.Category(site,categoryName) |
| 289 | + testset=[] |
| 290 | + for article in category.articles(): |
| 291 | + testset+=article2testset(article) |
| 292 | + |
| 293 | + return testset |
| 294 | + |
| 295 | +def runcategorytestset(source_site, webtest, categoryName="Automated tests"): |
| 296 | + """Scan a category for valid extension tests, |
| 297 | + and run all the tests using the webtest object.""" |
| 298 | + testset=category2testset(source_site,categoryName) |
| 299 | + runtestset(webtest,testset) |
| 300 | + |
| 301 | + return testset |
| 302 | + |
| 303 | +def runcategoryandreport(source_site, webtest, categoryName="Automated tests"): |
| 304 | + """Scan a category for valid extension tests, |
| 305 | + run all the tests using the webtest object, and report |
| 306 | + the results back to the relevant pages on the wiki. |
| 307 | + """ |
| 308 | + testset=runcategorytestset(source_site, webtest, categoryName) |
| 309 | + testset2pages(testset, source_site) |
| 310 | + return testset |
| 311 | + |
| 312 | +def _elementText(element,tag): |
| 313 | + """find the relevant element contents in an elementtree element, |
| 314 | + and strip spurious whitespace from the ends if settings.strip_whitespace |
| 315 | + is set""" |
| 316 | + text=element.findtext(tag) |
| 317 | + #This strips spurious whitespace from CDATA, due to users inserting it. |
| 318 | + #ick. |
| 319 | + if text and settings.strip_whitespace: |
| 320 | + text=text.strip() |
| 321 | + return text |
| 322 | + |
| 323 | +def xml2testset(xmlString): |
| 324 | + """converts xml string to a testset (a list of Test objects). |
| 325 | + Next to xml that actually contains a testset (obviously), this function |
| 326 | + will also eat an xml string containing only a single exttest element |
| 327 | + (intended for internal use only, ymmv). If settings.strip_whitespace |
| 328 | + is set, spurious whitespace will be stripped from the start and end of |
| 329 | + the element contents, even inside CDATA!""" |
| 330 | + if not xmlString: |
| 331 | + raise Exception("xml2testset: Empty xmlString.") |
| 332 | + tests=[] |
| 333 | + elements=ElementTree.XML(xmlString) |
| 334 | + for testElement in elements.getiterator("exttest"): |
| 335 | + test=Test() |
| 336 | + test.name=_elementText(testElement, "name") |
| 337 | + test.code=_elementText(testElement, "code") |
| 338 | + test.expect=_elementText(testElement,"expect") |
| 339 | + test.result=_elementText(testElement, "result") |
| 340 | + test.diff=_elementText(testElement, "diff") |
| 341 | + if testElement.find("known_bug") is not None: |
| 342 | + test.known_bug=True |
| 343 | + |
| 344 | + if not test.name: |
| 345 | + print "WARNING: <name> element missing" |
| 346 | + if not test.expect: |
| 347 | + print "WARNING:", |
| 348 | + if test.name: |
| 349 | + print "in "+test.name+":", |
| 350 | + print " <expect> element missing" |
| 351 | + |
| 352 | + if test.code: |
| 353 | + tests.append(test) |
| 354 | + else: |
| 355 | + report="" |
| 356 | + if test.name: |
| 357 | + report+="In"+test.name+" " |
| 358 | + else: |
| 359 | + report+="In <unnamed test>: (<name> element missing or left blank, so reports might be unclear)" |
| 360 | + if not test.code: |
| 361 | + report +="; missing <code> element (required)" |
| 362 | + if not test.expect: |
| 363 | + report +="; missing <expect> element (not required, but typically recommended)" |
| 364 | + report +="." |
| 365 | + raise MissingDataException(report) |
| 366 | + |
| 367 | + return tests |
| 368 | + |
| 369 | +def runxmltestset(webtest, xmlstring): |
| 370 | + """Take a testset defined in xml format and run it with WikiWebtest |
| 371 | + webtest""" |
| 372 | + testset=xml2testset(xmlstring) |
| 373 | + runtestset(webtest,testset) |
| 374 | + return testset |
| 375 | + |
| 376 | +def dumppy(testset,filename): |
| 377 | + """write testset to file in python .py format. |
| 378 | + This file can be import-ed normally in python to obtain |
| 379 | + the testset contents. |
| 380 | + Note that the file has test.py as a dependency (in case you |
| 381 | + want to ship it elsewhere).""" |
| 382 | + f=file(filename,"w") |
| 383 | + f.write("from exttest import *\n") |
| 384 | + f.write("tests="+repr(testset)) |
| 385 | + f.close() |
| 386 | + |
| 387 | +def dumpxml(testset,filename): |
| 388 | + """write testset to file in xml format.""" |
| 389 | + xml='<?xml version="1.0"?>\n' |
| 390 | + xml+="<exttests>\n" |
| 391 | + for test in testset: |
| 392 | + xml+=test.toXML() |
| 393 | + xml+="</exttests>\n" |
| 394 | + f=file(filename,"w") |
| 395 | + f.write(xml) |
| 396 | + f.close() |
| 397 | + |
| 398 | +def do_login(site_language, site_name, site_password): |
| 399 | + raise Exception("do_login is Deprecated. Use LoginData instead") |
| 400 | + |
| 401 | +def main(): |
| 402 | + testset=[] |
| 403 | + category_name=settings.category_name |
| 404 | + allOk=False |
| 405 | + |
| 406 | + if "--category-name" in sys.argv: |
| 407 | + category_name=sys.argv[ sys.argv.index("--category-name")+1] |
| 408 | + allOk=True |
| 409 | + if "--pyfile" in sys.argv: |
| 410 | + target_site=settings.target_login.login() |
| 411 | + webtest=WikiWebTest(target_site) |
| 412 | + filename=sys.argv[ sys.argv.index("--pyfile")+1] |
| 413 | + print "loading '"+filename+"'" |
| 414 | + testmodule=imp.load_source("testmodule",filename) |
| 415 | + tests=testmodule.tests |
| 416 | + testset=runtestset(webtest,tests) |
| 417 | + allOk=True |
| 418 | + elif "--xmlfile" in sys.argv: |
| 419 | + target_site=settings.target_login.login() |
| 420 | + webtest=WikiWebTest(target_site) |
| 421 | + filename=sys.argv[ sys.argv.index("--xmlfile")+1] |
| 422 | + print "loading '"+filename+"'" |
| 423 | + xmlfile=file(filename) |
| 424 | + xmlstring=xmlfile.read() |
| 425 | + xmlfile.close() |
| 426 | + testset=runxmltestset(webtest, xmlstring) |
| 427 | + allOk=True |
| 428 | + elif "--category" in sys.argv: |
| 429 | + print "testing category" |
| 430 | + |
| 431 | + source_site=settings.source_login.login() |
| 432 | + target_site=settings.target_login.login() |
| 433 | + webtest=WikiWebTest(target_site) |
| 434 | + testset=runcategorytestset(source_site, webtest, category_name) |
| 435 | + allOk=True |
| 436 | + elif "--category-and-write" in sys.argv: |
| 437 | + print "running cat and writing back to the wiki" |
| 438 | + source_site=settings.source_login.login() |
| 439 | + target_site=settings.target_login.login() |
| 440 | + webtest=WikiWebTest(target_site) |
| 441 | + testset=runcategoryandreport(source_site, webtest, category_name) |
| 442 | + allOk=True |
| 443 | + elif "--test" in sys.argv: |
| 444 | + print webtest.test("{{SERVER}} yet another test","<a something> yet another test") |
| 445 | + allOk=True |
| 446 | + elif "--help" in sys.argv: |
| 447 | + print file("HELP").read() |
| 448 | + allOk=True |
| 449 | + |
| 450 | + if "--dump-xml" in sys.argv: |
| 451 | + filename=sys.argv[ sys.argv.index("--dump-xml")+1] |
| 452 | + print "saving xml to '"+filename+"'." |
| 453 | + dumpxml(testset,filename) |
| 454 | + allOk=True |
| 455 | + |
| 456 | + if "--dump-py" in sys.argv: |
| 457 | + filename=sys.argv[ sys.argv.index("--dump-py")+1] |
| 458 | + print "saving py to '"+filename+"'." |
| 459 | + dumppy(testset,filename) |
| 460 | + allOk=True |
| 461 | + |
| 462 | + if not allOk: |
| 463 | + print "I don't understand. Try --help for help?" |
| 464 | + |
| 465 | + |
| 466 | +if __name__=="__main__": |
| 467 | + try: |
| 468 | + main() |
| 469 | + finally: |
| 470 | + wikipedia.stopme() |
| 471 | + |
| 472 | + |
Property changes on: trunk/testing/wikiation_exttest/wikiation_exttest.py |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 473 | + native |
Added: svn:executable |
2 | 474 | + |
Index: trunk/testing/wikiation_exttest/__init__.py |
Index: trunk/testing/wikiation_exttest/some.png |
Cannot display: file marked as a binary type. |
svn:mime-type = application/octet-stream |
Property changes on: trunk/testing/wikiation_exttest/some.png |
___________________________________________________________________ |
Added: svn:mime-type |
3 | 475 | + application/octet-stream |
Index: trunk/testing/wikiation_exttest/exttest.py |
— | — | @@ -0,0 +1,68 @@ |
| 2 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 3 | +# This software is developed by Kim Bruning. |
| 4 | +# |
| 5 | +# Distributed under the terms of the MIT license. |
| 6 | + |
| 7 | +class Test: |
| 8 | + name="" |
| 9 | + code="" |
| 10 | + expect="" |
| 11 | + pageReference=None |
| 12 | + diff="" |
| 13 | + ok=None |
| 14 | + result="" |
| 15 | + enable=True |
| 16 | + known_bug=False |
| 17 | + |
| 18 | + |
| 19 | + def __init__(self, name="", code="", expect="", pageReference=None, diff="", result="", ok=None, enable=True, known_bug=False): |
| 20 | + self.name=name |
| 21 | + self.code=code |
| 22 | + self.expect=expect |
| 23 | + self.pageReference=None |
| 24 | + self.diff=diff |
| 25 | + self.result=result |
| 26 | + self.ok=ok |
| 27 | + self.enable=enable |
| 28 | + self.known_bug=known_bug |
| 29 | + |
| 30 | + def __repr__(self): |
| 31 | + return "Test(name='''"+self.name+\ |
| 32 | + "''', code='''"+self.code+\ |
| 33 | + "''', expect='''"+self.expect+\ |
| 34 | + "''', pageReference="+repr(self.pageReference)+\ |
| 35 | + ", diff='''"+self.diff+\ |
| 36 | + "''', ok="+str(self.ok)+\ |
| 37 | + ", result='''"+self.result+\ |
| 38 | + "''', enable="+str(self.enable)+\ |
| 39 | + ", known_bug="+str(self.known_bug)+\ |
| 40 | + ")" |
| 41 | + |
| 42 | + def toXML(self): |
| 43 | + xml="<exttest>\n" |
| 44 | + xml+=" <name>"+self.name+"</name>\n" |
| 45 | + xml+=" <code><![CDATA["+self.code+"]]></code>\n" |
| 46 | + xml+=" <expect><![CDATA["+self.expect+"]]></expect>\n" |
| 47 | + if self.result: |
| 48 | + xml+=" <result><![CDATA["+self.result+"]]></result>\n" |
| 49 | + if self.diff: |
| 50 | + xml+=" <diff><![CDATA["+self.diff+"]]></diff>\n" |
| 51 | + if self.known_bug: |
| 52 | + xml+=" <known bug/>" |
| 53 | + xml+="</exttest>\n" |
| 54 | + return xml |
| 55 | + |
| 56 | +class PageReference: |
| 57 | + startPosition=0 |
| 58 | + endPosition=0 |
| 59 | + pageTitle="" |
| 60 | + |
| 61 | + def __init__(self, pageTitle="", startPosition=0, endPosition=0): |
| 62 | + self.pageTitle=pageTitle |
| 63 | + self.startPosition=startPosition |
| 64 | + self.endPosition=endPosition |
| 65 | + |
| 66 | + def __repr__(self): |
| 67 | + return "PageReference(pageTitle='"+self.pageTitle+"', startPosition="+str(self.startPosition)+", endPosition="+str(self.endPosition)+")" |
| 68 | + |
| 69 | + |
Property changes on: trunk/testing/wikiation_exttest/exttest.py |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 70 | + native |
Index: trunk/testing/wikiation_exttest/HELP |
— | — | @@ -0,0 +1,94 @@ |
| 2 | +-------------------------- |
| 3 | +Help for exttester |
| 4 | + |
| 5 | +This software, copyright (C) 2008-2009 by Wikiation. |
| 6 | +This software is developed by Kim Bruning. |
| 7 | + |
| 8 | +Distributed under the terms of the MIT license |
| 9 | + |
| 10 | +Purpose: |
| 11 | +Regression testing of mediawiki and mediawiki extension modules. |
| 12 | +Currently checks whether certain wikisyntax generates the expected (X)HTML. |
| 13 | +In future, generic web requests might also be checked. |
| 14 | + |
| 15 | +The test is performed by logging on to the configured wiki and creating a |
| 16 | +new page with the specified wikisyntax, surrounded by (long) unique marker |
| 17 | +strings. |
| 18 | + |
| 19 | + |
| 20 | +Syntax: |
| 21 | + |
| 22 | +(unix) |
| 23 | +./exttester.py [options] |
| 24 | + |
| 25 | +(all os) |
| 26 | +python exttester.py [options] |
| 27 | + |
| 28 | +Options are all GNU long form: |
| 29 | + |
| 30 | +base operations (pick 1): |
| 31 | + |
| 32 | +--pyfile <filename> |
| 33 | + Execute tests from a python file of the appropriate format (a |
| 34 | + list of Test objects) |
| 35 | + (see examples/example.py, test.py). |
| 36 | + Writes a brief report to stdout while testing. |
| 37 | + |
| 38 | +--xmlfile <filename> |
| 39 | + Execute tests from an xml file (see examples/example.xml for format) |
| 40 | + Writes a brief report to stdout while testing. |
| 41 | + |
| 42 | +--category |
| 43 | + Execute tests from a category on the configured wiki |
| 44 | + (default: [[Category:Automated tests]]). |
| 45 | + Will check each page in the category for <exttest></exttest> |
| 46 | + tags, assemble a test-set, and execute it. |
| 47 | + |
| 48 | +--category-and-write |
| 49 | + similar to --category above, however, if the <exttest> element is |
| 50 | + followed by a <result>...</result> element ( note: <result/> |
| 51 | + currently doesn't work), the contents of the result element will |
| 52 | + be replaced by a wikiformatted report on the test result. |
| 53 | + This is helpful on-wiki for people who like to have their |
| 54 | + tests and results on the same page. A separate element is used |
| 55 | + to reduce the odds of exttester accidentally mangeling |
| 56 | + the page. |
| 57 | + |
| 58 | +--test |
| 59 | + A quick simple built-in test to check if everything is working ok |
| 60 | + (checks the {{SERVER}} flag). It should report a failure and a diff. |
| 61 | + Useful for checking if your configuration is ok. |
| 62 | + |
| 63 | +--help |
| 64 | + Display this help |
| 65 | + |
| 66 | +Other flags: |
| 67 | + |
| 68 | +--dump-xml <filename> |
| 69 | +--dump-py <filename> |
| 70 | + After concluding the test, save respectively xml or python to the |
| 71 | + specified filename, in a format suitable for reading by --pyfile or |
| 72 | + --xmlfile respectively. |
| 73 | + |
| 74 | + Both filetypes also include the outcome of the test |
| 75 | + (HTML), and an ascii diff of the outcome with the expected outcome. |
| 76 | + |
| 77 | + In the case of --category or --category-and-write, the .py |
| 78 | + file also includes PageReference information (see: |
| 79 | + test.PageReference). Be aware that PageReference information |
| 80 | + is only accurate at the time it was generated. If anyone alters |
| 81 | + the contents of the test category it may no longer be valid. |
| 82 | + This might be a problem in your own programs. |
| 83 | + |
| 84 | + To prevent the above problems in exttester, |
| 85 | + --pyfile and --xmlfile only use test information. |
| 86 | + PageReference information, (X)HTML results, and diffs are ignored. |
| 87 | + |
| 88 | +--category-name <category name> |
| 89 | + Specify a different category to operate on. Just state the category name itself |
| 90 | + (To use [[Category:Foobar]], you just say --category-name Foobar ). If the category |
| 91 | + name uses spaces or other strange characters, you may need to escape or |
| 92 | + quote it. If you want to use unicode strings, ensure your shell and term pass |
| 93 | + unicode correctly. |
| 94 | + By default, exttester operates on the category Automated tests |
| 95 | + (that is to say: [[Category:Automated tests]]). |
Property changes on: trunk/testing/wikiation_exttest/HELP |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 96 | + native |
Index: trunk/testing/wikiation_exttest/logindata.py |
— | — | @@ -0,0 +1,60 @@ |
| 2 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 3 | +# This software is developed by Kim Bruning. |
| 4 | +# |
| 5 | +# Distributed under the terms of the MIT license |
| 6 | + |
| 7 | +import sys, os |
| 8 | +import settings |
| 9 | +if settings.pywikipedia_path not in sys.path: |
| 10 | + sys.path.append(settings.pywikipedia_path) |
| 11 | + |
| 12 | +cwd=os.getcwd() |
| 13 | +os.chdir(settings.pywikipedia_path) |
| 14 | +import wikipedia, login |
| 15 | +os.chdir(cwd) |
| 16 | +import base_family |
| 17 | + |
| 18 | +class LoginData: |
| 19 | + |
| 20 | + def __init__( |
| 21 | + self, |
| 22 | + name='MY_NAME_FOR_THIS_SERVER', |
| 23 | + protocol='http', |
| 24 | + server='www.my_server.com', |
| 25 | + scriptpath='/my/script/path/', |
| 26 | + version='1.13.2', |
| 27 | + lang='en', |
| 28 | + encoding='utf-8', |
| 29 | + user='MY_BOT_USER', |
| 30 | + password='MY_SECRET_PASSWORD', |
| 31 | + RversionTab=None, |
| 32 | + api_supported=False |
| 33 | + ): |
| 34 | + self.lang=lang |
| 35 | + self.user=user |
| 36 | + self.password=password |
| 37 | + self.family=base_family.Family( |
| 38 | + name=name, |
| 39 | + protocol=protocol, |
| 40 | + server=server, |
| 41 | + scriptpath=scriptpath, |
| 42 | + version=version, |
| 43 | + lang=lang, |
| 44 | + encoding=encoding, |
| 45 | + RversionTab=RversionTab, |
| 46 | + api_supported=api_supported) |
| 47 | + self.site=None |
| 48 | + |
| 49 | + def login(self): |
| 50 | + self.site=wikipedia.Site( |
| 51 | + code=self.lang, |
| 52 | + fam=self.family, |
| 53 | + user=self.user |
| 54 | + ) |
| 55 | + loginManager=login.LoginManager( |
| 56 | + password=self.password, |
| 57 | + site=self.site, |
| 58 | + username=self.user |
| 59 | + ) |
| 60 | + loginManager.login() |
| 61 | + return self.site |
Property changes on: trunk/testing/wikiation_exttest/logindata.py |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 62 | + native |
Index: trunk/testing/wikiation_exttest/examples/out.xml |
— | — | @@ -0,0 +1,50 @@ |
| 2 | +<?xml version="1.0"?> |
| 3 | +<tests> |
| 4 | +<test> |
| 5 | + <name>{{SERVER}} directive</name> |
| 6 | + <code><![CDATA[{{SERVER}} yet another test]]></code> |
| 7 | + <expect><![CDATA[<a href="http://83.149.110.226" class="external free" title="http://83.149.110.226" rel="nofollow">http://83.149.110.226</a> yet another test]]></expect> |
| 8 | + <result><![CDATA[<a href="http://83.149.110.226" class="external free" title="http://83.149.110.226" rel="nofollow">http://83.149.110.226</a> yet another test]]></result> |
| 9 | + <diff><![CDATA[ <a href="http://83.149.110.226" class="external free" title="http://83.149.110.226" rel="nofollow">http://83.149.110.226</a> yet another test]]></diff> |
| 10 | +</test> |
| 11 | +<test> |
| 12 | + <name>plain text</name> |
| 13 | + <code><![CDATA[test: plain text]]></code> |
| 14 | + <expect><![CDATA[test: plain text]]></expect> |
| 15 | + <result><![CDATA[]]></result> |
| 16 | + <diff><![CDATA[]]></diff> |
| 17 | +</test> |
| 18 | +<test> |
| 19 | + <name>plain text</name> |
| 20 | + <code><![CDATA[tset: a deliberate spelling error]]></code> |
| 21 | + <expect><![CDATA[test: a deliberate spelling error, and more text]]></expect> |
| 22 | + <result><![CDATA[]]></result> |
| 23 | + <diff><![CDATA[]]></diff> |
| 24 | +</test> |
| 25 | +<test> |
| 26 | + <name>normal wikilink</name> |
| 27 | + <code><![CDATA[[[hello]]]]></code> |
| 28 | + <expect><![CDATA[<a href="https://www.mediawiki.org/index.php?title=Hello&action=edit" class="new" title="Hello">hello</a>]]></expect> |
| 29 | + <result><![CDATA[]]></result> |
| 30 | + <diff><![CDATA[]]></diff> |
| 31 | +</test> |
| 32 | +<test> |
| 33 | + <name>normal wikilink with pipe</name> |
| 34 | + <code><![CDATA[[[hello|more]]]]></code> |
| 35 | + <expect><![CDATA[<a href="https://www.mediawiki.org/index.php?title=Hello&action=edit" class="new" title="Hello">more</a>]]></expect> |
| 36 | + <result><![CDATA[<a href="https://www.mediawiki.org/index.php?title=Hello&action=edit" class="new" title="Hello">more</a>]]></result> |
| 37 | + <diff><![CDATA[ <a href="https://www.mediawiki.org/index.php?title=Hello&action=edit" class="new" title="Hello">more</a>]]></diff> |
| 38 | +</test> |
| 39 | +<test> |
| 40 | + <name>plain text</name> |
| 41 | + <code><![CDATA[tets: a deliberate spelling error.]]></code> |
| 42 | + <expect><![CDATA[test: a deliberate spelling error, and more text]]></expect> |
| 43 | + <result><![CDATA[tets: a deliberate spelling error.]]></result> |
| 44 | + <diff><![CDATA[- tets: a deliberate spelling error. |
| 45 | +? - ^ |
| 46 | + |
| 47 | ++ test: a deliberate spelling error, and more text |
| 48 | +? + ^^^^^^^^^^^^^^^ |
| 49 | +]]></diff> |
| 50 | +</test> |
| 51 | +</tests> |
Property changes on: trunk/testing/wikiation_exttest/examples/out.xml |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 52 | + native |
Index: trunk/testing/wikiation_exttest/examples/out2.xml |
— | — | @@ -0,0 +1,39 @@ |
| 2 | +<?xml version="1.0"?> |
| 3 | +<exttests> |
| 4 | +<exttest> |
| 5 | + <name>{{SERVER}} directive</name> |
| 6 | + <code><![CDATA[{{SERVER}} yet another test]]></code> |
| 7 | + <expect><![CDATA[<a href="http://83.149.110.226" class="external free" title="http://83.149.110.226" rel="nofollow">http://83.149.110.226</a> yet another test]]></expect> |
| 8 | + <result><![CDATA[<a href="http://83.149.110.226" class="external free" title="http://83.149.110.226" rel="nofollow">http://83.149.110.226</a> yet another test]]></result> |
| 9 | + <diff><![CDATA[ <a href="http://83.149.110.226" class="external free" title="http://83.149.110.226" rel="nofollow">http://83.149.110.226</a> yet another test]]></diff> |
| 10 | +</exttest> |
| 11 | +<exttest> |
| 12 | + <name>plain text 2000</name> |
| 13 | + <code><![CDATA[tset: a deliberate spelling error]]></code> |
| 14 | + <expect><![CDATA[test: a deliberate spelling error, and more text]]></expect> |
| 15 | +</exttest> |
| 16 | +<exttest> |
| 17 | + <name>normal wikilink</name> |
| 18 | + <code><![CDATA[[[hello]]]]></code> |
| 19 | + <expect><![CDATA[<a href="https://www.mediawiki.org/index.php?title=Hello&action=edit" class="new" title="Hello">hello</a>]]></expect> |
| 20 | +</exttest> |
| 21 | +<exttest> |
| 22 | + <name>normal wikilink with pipe</name> |
| 23 | + <code><![CDATA[[[hello|more]]]]></code> |
| 24 | + <expect><![CDATA[<a href="https://www.mediawiki.org/index.php?title=Hello&action=edit" class="new" title="Hello">more</a>]]></expect> |
| 25 | + <result><![CDATA[<a href="https://www.mediawiki.org/index.php?title=Hello&action=edit" class="new" title="Hello">more</a>]]></result> |
| 26 | + <diff><![CDATA[ <a href="https://www.mediawiki.org/index.php?title=Hello&action=edit" class="new" title="Hello">more</a>]]></diff> |
| 27 | +</exttest> |
| 28 | +<exttest> |
| 29 | + <name>plain text</name> |
| 30 | + <code><![CDATA[tets: a deliberate spelling error.]]></code> |
| 31 | + <expect><![CDATA[test: a deliberate spelling error, and more text]]></expect> |
| 32 | + <result><![CDATA[tets: a deliberate spelling error.]]></result> |
| 33 | + <diff><![CDATA[- tets: a deliberate spelling error. |
| 34 | +? - ^ |
| 35 | + |
| 36 | ++ test: a deliberate spelling error, and more text |
| 37 | +? + ^^^^^^^^^^^^^^^ |
| 38 | +]]></diff> |
| 39 | +</exttest> |
| 40 | +</exttests> |
Property changes on: trunk/testing/wikiation_exttest/examples/out2.xml |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 41 | + native |
Index: trunk/testing/wikiation_exttest/examples/out3.xml |
— | — | @@ -0,0 +1,48 @@ |
| 2 | +<?xml version="1.0"?> |
| 3 | +<exttests> |
| 4 | +<exttest> |
| 5 | + <name>{{SERVER}} directive</name> |
| 6 | + <code><![CDATA[{{SERVER}} yet another test]]></code> |
| 7 | + <expect><![CDATA[<a href="http://83.149.110.226" class="external free" title="http://83.149.110.226" rel="nofollow">http://83.149.110.226</a> yet another test]]></expect> |
| 8 | + <result><![CDATA[<a href="http://83.149.110.226" class="external free" title="http://83.149.110.226" rel="nofollow">http://83.149.110.226</a> yet another test]]></result> |
| 9 | + <diff><![CDATA[ <a href="http://83.149.110.226" class="external free" title="http://83.149.110.226" rel="nofollow">http://83.149.110.226</a> yet another test]]></diff> |
| 10 | +</exttest> |
| 11 | +<exttest> |
| 12 | + <name>plain text 2000</name> |
| 13 | + <code><![CDATA[tset: a deliberate spelling error]]></code> |
| 14 | + <expect><![CDATA[test: a deliberate spelling error, and more text]]></expect> |
| 15 | + <result><![CDATA[tset: a deliberate spelling error]]></result> |
| 16 | + <diff><![CDATA[- tset: a deliberate spelling error |
| 17 | +? - |
| 18 | + |
| 19 | ++ test: a deliberate spelling error, and more text |
| 20 | +? + +++++++++++++++ |
| 21 | +]]></diff> |
| 22 | +</exttest> |
| 23 | +<exttest> |
| 24 | + <name>normal wikilink</name> |
| 25 | + <code><![CDATA[[[hello]]]]></code> |
| 26 | + <expect><![CDATA[<a href="https://www.mediawiki.org/index.php?title=Hello&action=edit" class="new" title="Hello">hello</a>]]></expect> |
| 27 | + <result><![CDATA[<a href="https://www.mediawiki.org/index.php?title=Hello&action=edit" class="new" title="Hello">hello</a>]]></result> |
| 28 | + <diff><![CDATA[ <a href="https://www.mediawiki.org/index.php?title=Hello&action=edit" class="new" title="Hello">hello</a>]]></diff> |
| 29 | +</exttest> |
| 30 | +<exttest> |
| 31 | + <name>normal wikilink with pipe</name> |
| 32 | + <code><![CDATA[[[hello|more]]]]></code> |
| 33 | + <expect><![CDATA[<a href="https://www.mediawiki.org/index.php?title=Hello&action=edit" class="new" title="Hello">more</a>]]></expect> |
| 34 | + <result><![CDATA[<a href="https://www.mediawiki.org/index.php?title=Hello&action=edit" class="new" title="Hello">more</a>]]></result> |
| 35 | + <diff><![CDATA[ <a href="https://www.mediawiki.org/index.php?title=Hello&action=edit" class="new" title="Hello">more</a>]]></diff> |
| 36 | +</exttest> |
| 37 | +<exttest> |
| 38 | + <name>plain text</name> |
| 39 | + <code><![CDATA[tets: a deliberate spelling error.]]></code> |
| 40 | + <expect><![CDATA[test: a deliberate spelling error, and more text]]></expect> |
| 41 | + <result><![CDATA[tets: a deliberate spelling error.]]></result> |
| 42 | + <diff><![CDATA[- tets: a deliberate spelling error. |
| 43 | +? - ^ |
| 44 | + |
| 45 | ++ test: a deliberate spelling error, and more text |
| 46 | +? + ^^^^^^^^^^^^^^^ |
| 47 | +]]></diff> |
| 48 | +</exttest> |
| 49 | +</exttests> |
Property changes on: trunk/testing/wikiation_exttest/examples/out3.xml |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 50 | + native |
Index: trunk/testing/wikiation_exttest/examples/example.xml |
— | — | @@ -0,0 +1,22 @@ |
| 2 | +<?xml version="1.0"?> |
| 3 | +<exttests> |
| 4 | + |
| 5 | + <exttest> |
| 6 | + <name>{{SERVER}} directive</name> |
| 7 | + <code>{{SERVER}} yet another test</code> |
| 8 | + <expect><![CDATA[<a href="http://83.149.110.226" class="external free" title="http://83.149.110.226" rel="nofollow">http://83.149.110.226</a> yet another test]]></expect> |
| 9 | + </exttest> |
| 10 | + |
| 11 | + <exttest> |
| 12 | + <name>plain text</name> |
| 13 | + <code>test</code> |
| 14 | + <expect>test</expect> |
| 15 | + </exttest> |
| 16 | + |
| 17 | + <exttest> |
| 18 | + <name>normal wikilink</name> |
| 19 | + <code>[[hello]]</code> |
| 20 | + <expect><![CDATA[<a href="https://www.mediawiki.org/index.php?title=Hello&action=edit" class="new" title="Hello">hello</a>]]></expect> |
| 21 | + </exttest> |
| 22 | + |
| 23 | +</exttests> |
Property changes on: trunk/testing/wikiation_exttest/examples/example.xml |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 24 | + native |
Index: trunk/testing/wikiation_exttest/examples/README |
— | — | @@ -0,0 +1,3 @@ |
| 2 | +some of these files ahven't been upgraded to newer version of exttester yet. |
| 3 | + |
| 4 | +use --dump-py and --dump-xml to generate your own example files |
Property changes on: trunk/testing/wikiation_exttest/examples/README |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 5 | + native |
Index: trunk/testing/wikiation_exttest/examples/out.py |
— | — | @@ -0,0 +1,7 @@ |
| 2 | +from exttest import * |
| 3 | +tests=[Test(name='''{{SERVER}} directive''', code='''{{SERVER}} yet another test''', expect='''<a href="http://83.149.110.226" class="external free" title="http://83.149.110.226" rel="nofollow">http://83.149.110.226</a> yet another test''', pageReference=PageReference(pageTitle='Testpage', startPosition=195, endPosition=511), diff=''' <a href="http://83.149.110.226" class="external free" title="http://83.149.110.226" rel="nofollow">http://83.149.110.226</a> yet another test''', ok=True, result='''<a href="http://83.149.110.226" class="external free" title="http://83.149.110.226" rel="nofollow">http://83.149.110.226</a> yet another test''', enable=True), Test(name='''plain text''', code='''test: plain text''', expect='''test: plain text''', pageReference=PageReference(pageTitle='Testpage', startPosition=997, endPosition=1155), diff='''''', ok=None, result='''''', enable=False), Test(name='''plain text''', code='''tset: a deliberate spelling error''', expect='''test: a deliberate spelling error, and more text''', pageReference=PageReference(pageTitle='Testpage', startPosition=1419, endPosition=1626), diff='''''', ok=None, result='''''', enable=False), Test(name='''normal wikilink''', code='''[[hello]]''', expect='''<a href="https://www.mediawiki.org/index.php?title=Hello&action=edit" class="new" title="Hello">hello</a>''', pageReference=PageReference(pageTitle='Testpage', startPosition=1976, endPosition=2212), diff='''''', ok=None, result='''''', enable=False), Test(name='''normal wikilink with pipe''', code='''[[hello|more]]''', expect='''<a href="https://www.mediawiki.org/index.php?title=Hello&action=edit" class="new" title="Hello">more</a>''', pageReference=PageReference(pageTitle='Testpage2', startPosition=8, endPosition=258), diff=''' <a href="https://www.mediawiki.org/index.php?title=Hello&action=edit" class="new" title="Hello">more</a>''', ok=True, result='''<a href="https://www.mediawiki.org/index.php?title=Hello&action=edit" class="new" title="Hello">more</a>''', enable=True), Test(name='''plain text''', code='''tets: a deliberate spelling error.''', expect='''test: a deliberate spelling error, and more text''', pageReference=PageReference(pageTitle='Testpage3', startPosition=118, endPosition=326), diff='''- tets: a deliberate spelling error. |
| 4 | +? - ^ |
| 5 | + |
| 6 | ++ test: a deliberate spelling error, and more text |
| 7 | +? + ^^^^^^^^^^^^^^^ |
| 8 | +''', ok=False, result='''tets: a deliberate spelling error.''', enable=True)] |
Property changes on: trunk/testing/wikiation_exttest/examples/out.py |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 9 | + native |
Index: trunk/testing/wikiation_exttest/examples/example.py |
— | — | @@ -0,0 +1,24 @@ |
| 2 | +#!/usr/bin/python |
| 3 | + |
| 4 | + |
| 5 | +from exttest import Test |
| 6 | + |
| 7 | + |
| 8 | +tests=[ |
| 9 | + Test( |
| 10 | + name="{{SERVER}} directive", |
| 11 | + code="{{SERVER}} yet another test", |
| 12 | + expect='<a href="http://83.149.110.226" class="external free" title="http://83.149.110.226" rel="nofollow">http://83.149.110.226</a> yet another test' |
| 13 | + ), |
| 14 | + Test( |
| 15 | + name="plain text", |
| 16 | + code="test", |
| 17 | + expect="test" |
| 18 | + ), |
| 19 | + Test( |
| 20 | + name="normal wikilink", |
| 21 | + code="[[hello]]", |
| 22 | + expect='<a href="https://www.mediawiki.org/index.php?title=Hello&action=edit" class="new" title="Hello">hello</a>' |
| 23 | + ) |
| 24 | +] |
| 25 | + |
Property changes on: trunk/testing/wikiation_exttest/examples/example.py |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 26 | + native |
Index: trunk/testing/wikiation_exttest/logintest.py |
— | — | @@ -0,0 +1,27 @@ |
| 2 | +#!/usr/bin/python |
| 3 | + |
| 4 | +#This software, copyright (C) 2008-2009 by Wikiation. |
| 5 | +# This software is developed by Kim Bruning. |
| 6 | +# |
| 7 | +# Distributed under the terms of the MIT license. |
| 8 | + |
| 9 | +# Logintest: a quick test of logindata |
| 10 | + |
| 11 | +import logindata |
| 12 | + |
| 13 | +l=logindata.LoginData( |
| 14 | + name='6Basic', |
| 15 | + protocol='http', |
| 16 | + server='localhost', |
| 17 | + scriptpath='/revisions/REL1_13_2', |
| 18 | + version='1.13.2', |
| 19 | + lang='en', |
| 20 | + user='------', |
| 21 | + password='-------' |
| 22 | + ) |
| 23 | + |
| 24 | +site=l.login() |
| 25 | +print site |
| 26 | +page=logindata.wikipedia.Page(site,'Hello World') |
| 27 | + |
| 28 | +page.put("hello world\n"); |
Property changes on: trunk/testing/wikiation_exttest/logintest.py |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 29 | + native |
Added: svn:executable |
2 | 30 | + |
Index: trunk/testing/wikiation_exttest/testpages/Testpage |
— | — | @@ -0,0 +1,37 @@ |
| 2 | +This is a test page. |
| 3 | +Let's also add xml and see what happens. |
| 4 | + |
| 5 | +<pre> |
| 6 | + |
| 7 | + <exttest> |
| 8 | + <name>{{SERVER}} directive</name> |
| 9 | + <code>{{SERVER}} yet another test</code> |
| 10 | + <expect><![CDATA[<a href="http://83.149.110.226" class="external free" title="http://83.149.110.226" rel="nofollow">http://83.149.110.226</a> yet another test]]></expect> |
| 11 | + </exttest> |
| 12 | + |
| 13 | +<extresult></extresult> |
| 14 | + |
| 15 | +</pre> |
| 16 | +some odd text in between |
| 17 | + |
| 18 | +<pre> |
| 19 | + <exttest> |
| 20 | + <name>plain text</name> |
| 21 | + <code>test</code> |
| 22 | + <expect>test</expect> |
| 23 | + </exttest> |
| 24 | +<extresult></extresult> |
| 25 | + |
| 26 | + |
| 27 | + <exttest> |
| 28 | + <name>normal wikilink</name> |
| 29 | + <code>[[hello]]</code> |
| 30 | + <expect><![CDATA[<a href="https://www.mediawiki.org/index.php?title=Hello&action=edit" class="new" title="Hello">hello</a>]]></expect> |
| 31 | + </exttest> |
| 32 | + |
| 33 | +<extresult></extresult> |
| 34 | +</pre> |
| 35 | + |
| 36 | + |
| 37 | + |
| 38 | +[[Category:automated tests]] |
Property changes on: trunk/testing/wikiation_exttest/testpages/Testpage |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 39 | + native |
Index: trunk/testing/wikiation_exttest/settings.py.example |
— | — | @@ -0,0 +1,60 @@ |
| 2 | +# This software, copyright (C) 2008-2009 by Wikiation. |
| 3 | +# This software is developed by Kim Bruning. |
| 4 | +# |
| 5 | +# Distributed under the terms of the MIT license |
| 6 | + |
| 7 | + |
| 8 | +#Settings file for exttest |
| 9 | +import os |
| 10 | + |
| 11 | +# path to pywikipedia |
| 12 | +#(calculated, in this case) |
| 13 | +pywikipedia_path=os.path.join(os.path.dirname(__file__),'..','pywikipedia') |
| 14 | + |
| 15 | +from logindata import LoginData |
| 16 | + |
| 17 | +# How many tests per page should be permitted? |
| 18 | +# (0 = infinite) |
| 19 | +tests_per_page=0 |
| 20 | + |
| 21 | +#What is the default category name? |
| 22 | +category_name="Automated tests" |
| 23 | + |
| 24 | +# Trim spaces in elements. |
| 25 | +# Certain people introduce spurious whitespace, even in CDATA. ARGH! |
| 26 | +# If you cannot smite such infidels, turn on this flag instead to strip |
| 27 | +# their whitespace. |
| 28 | +# I'm not sure that this is the canonical behaviour. O:-) |
| 29 | +strip_whitespace=True |
| 30 | + |
| 31 | + |
| 32 | +# site information |
| 33 | + |
| 34 | +# wiki to read testcases from, and write reports to |
| 35 | +# (logically not used if reading tests from file) |
| 36 | +source_login=LoginData( |
| 37 | + name='test_source', |
| 38 | + protocol='http', |
| 39 | + server='localhost', |
| 40 | + scriptpath='/revisions/REL1_13_2', |
| 41 | + lang='en', |
| 42 | + encoding='utf-8', |
| 43 | + user='---------', |
| 44 | + password='--------' |
| 45 | + ) |
| 46 | + |
| 47 | +# wiki to actually run the test on. |
| 48 | +target_login=LoginData( |
| 49 | + name='test_target', |
| 50 | + protocol='http', |
| 51 | + server='localhost', |
| 52 | + scriptpath='/revisions/exttest_target', |
| 53 | + lang='en', |
| 54 | + encoding='utf-8', |
| 55 | + user='---------', |
| 56 | + password='--------' |
| 57 | + ) |
| 58 | + |
| 59 | + |
| 60 | +#test page name (botTest is default |
| 61 | +pageName="Bot_test" |
Property changes on: trunk/testing/wikiation_exttest/settings.py.example |
___________________________________________________________________ |
Added: svn:eol-style |
1 | 62 | + native |
Index: trunk/testing/tests/ParserFunctions/WETE.xml |
— | — | @@ -0,0 +1,35 @@ |
| 2 | +<?xml version="1.0"?> |
| 3 | +<exttests> |
| 4 | + <exttest> |
| 5 | + <name>Test resulting true</name> |
| 6 | + <code><![CDATA[{{#if: test | true | false }}]]></code> |
| 7 | + <expect><![CDATA[true]]></expect> |
| 8 | + </exttest> |
| 9 | + <exttest> |
| 10 | + <name>Test resulting false</name> |
| 11 | + <code><![CDATA[{{#if: | true | false }}]]></code> |
| 12 | + <expect><![CDATA[false]]></expect> |
| 13 | + </exttest> |
| 14 | + <exttest> |
| 15 | + <name>Textual comparison resulting true</name> |
| 16 | + <code><![CDATA[{{#ifeq: test | test | true | false }}]]></code> |
| 17 | + <expect><![CDATA[true]]></expect> |
| 18 | + </exttest> |
| 19 | + <exttest> |
| 20 | + <name>Textual comparison resulting false</name> |
| 21 | + <code><![CDATA[{{#ifeq: test | not test | true | false }}]]></code> |
| 22 | + <expect><![CDATA[false]]></expect> |
| 23 | + </exttest> |
| 24 | + <exttest> |
| 25 | + <name>Numerical comparison resulting true</name> |
| 26 | + <code><![CDATA[{{#ifeq: 0 | -0 | true | false }}]]></code> |
| 27 | + <expect><![CDATA[true]]></expect> |
| 28 | + </exttest> |
| 29 | + <exttest> |
| 30 | + <name>Textual comparison resulting false</name> |
| 31 | + <code><![CDATA[{{#ifeq: 1 | 2 | true | false }}]]></code> |
| 32 | + <expect><![CDATA[false]]></expect> |
| 33 | + </exttest> |
| 34 | + |
| 35 | +</exttests> |
| 36 | + |
Index: trunk/testing/tests/UniwikiCatBoxAtTop/Selenium.html |
— | — | @@ -0,0 +1,47 @@ |
| 2 | +<?xml version="1.0" encoding="UTF-8"?> |
| 3 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
| 4 | +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
| 5 | +<head profile="http://selenium-ide.openqa.org/profiles/test-case"> |
| 6 | +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> |
| 7 | +<link rel="selenium.base" href="" /> |
| 8 | +<title>Selenium</title> |
| 9 | +</head> |
| 10 | +<body> |
| 11 | +<table cellpadding="1" cellspacing="1" border="1"> |
| 12 | +<thead> |
| 13 | +<tr><td rowspan="1" colspan="3">Selenium</td></tr> |
| 14 | +</thead><tbody> |
| 15 | +<tr> |
| 16 | + <td>open</td> |
| 17 | + <td>index.php?title=Main_Page&action=edit</td> |
| 18 | + <td></td> |
| 19 | +</tr> |
| 20 | +<tr> |
| 21 | + <td>type</td> |
| 22 | + <td>wpTextbox1</td> |
| 23 | + <td>[[Category:Test 1]]<br />[[Category:Test 1]]<br />[[Category:test 1]]<br />[[Category:Test 2]]</td> |
| 24 | +</tr> |
| 25 | +<tr> |
| 26 | + <td>clickAndWait</td> |
| 27 | + <td>wpSave</td> |
| 28 | + <td></td> |
| 29 | +</tr> |
| 30 | +<tr> |
| 31 | + <td>verifyTextPresent</td> |
| 32 | + <td>Categories</td> |
| 33 | + <td></td> |
| 34 | +</tr> |
| 35 | +<tr> |
| 36 | + <td>verifyTextPresent</td> |
| 37 | + <td>Test 1</td> |
| 38 | + <td></td> |
| 39 | +</tr> |
| 40 | +<tr> |
| 41 | + <td>verifyTextPresent</td> |
| 42 | + <td>Test 2</td> |
| 43 | + <td></td> |
| 44 | +</tr> |
| 45 | + |
| 46 | +</tbody></table> |
| 47 | +</body> |
| 48 | +</html> |
Index: trunk/testing/tests/UniwikiGenericEditPage/Selenium.html |
— | — | @@ -0,0 +1,172 @@ |
| 2 | +<?xml version="1.0" encoding="UTF-8"?> |
| 3 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
| 4 | +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
| 5 | +<head profile="http://selenium-ide.openqa.org/profiles/test-case"> |
| 6 | +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> |
| 7 | +<link rel="selenium.base" href="" /> |
| 8 | +<title>Uniwiki Generic Edit Page Manual Testcase 1</title> |
| 9 | +</head> |
| 10 | +<body> |
| 11 | +<table cellpadding="1" cellspacing="1" border="1"> |
| 12 | +<thead> |
| 13 | +<tr><td rowspan="1" colspan="3">Uniwiki Generic Edit Page Manual Testcase 1</td></tr> |
| 14 | +</thead><tbody> |
| 15 | +<tr> |
| 16 | + <td>open</td> |
| 17 | + <td>index.php?title=Main_Page</td> |
| 18 | + <td></td> |
| 19 | +</tr> |
| 20 | +<tr> |
| 21 | + <td>type</td> |
| 22 | + <td>searchInput</td> |
| 23 | + <td>Non-existent Page</td> |
| 24 | +</tr> |
| 25 | +<tr> |
| 26 | + <td>clickAndWait</td> |
| 27 | + <td>searchGoButton</td> |
| 28 | + <td></td> |
| 29 | +</tr> |
| 30 | +<tr> |
| 31 | + <td>clickAndWait</td> |
| 32 | + <td>link=create this page</td> |
| 33 | + <td></td> |
| 34 | +</tr> |
| 35 | +<tr> |
| 36 | + <td>type</td> |
| 37 | + <td>//textarea[@name='section-0']</td> |
| 38 | + <td>This is a '''test''' of the ''Uniwiki Generic Edit Page'' extension.</td> |
| 39 | +</tr> |
| 40 | +<tr> |
| 41 | + <td>type</td> |
| 42 | + <td>fm-add-sect</td> |
| 43 | + <td>Test 1</td> |
| 44 | +</tr> |
| 45 | +<tr> |
| 46 | + <td>click</td> |
| 47 | + <td>fm-add-sect-button</td> |
| 48 | + <td></td> |
| 49 | +</tr> |
| 50 | +<tr> |
| 51 | + <td>type</td> |
| 52 | + <td>fm-add-sect</td> |
| 53 | + <td>Test 1</td> |
| 54 | +</tr> |
| 55 | +<tr> |
| 56 | + <td>click</td> |
| 57 | + <td>fm-add-sect-button</td> |
| 58 | + <td></td> |
| 59 | +</tr> |
| 60 | +<tr> |
| 61 | + <td>type</td> |
| 62 | + <td>fm-add-sect</td> |
| 63 | + <td>Test 2</td> |
| 64 | +</tr> |
| 65 | +<tr> |
| 66 | + <td>click</td> |
| 67 | + <td>fm-add-sect-button</td> |
| 68 | + <td></td> |
| 69 | +</tr> |
| 70 | +<tr> |
| 71 | + <td>type</td> |
| 72 | + <td>//textarea[@name='section-2']</td> |
| 73 | + <td>This is a '''test''' of the ''Uniwiki Generic Edit Page'' extension.</td> |
| 74 | +</tr> |
| 75 | +<tr> |
| 76 | + <td>type</td> |
| 77 | + <td>//textarea[@name='section-3']</td> |
| 78 | + <td>This is a '''test''' of the ''Uniwiki Generic Edit Page'' extension.</td> |
| 79 | +</tr> |
| 80 | +<tr> |
| 81 | + <td>type</td> |
| 82 | + <td>//textarea[@name='section-4']</td> |
| 83 | + <td>This is a '''test''' of the ''Uniwiki Generic Edit Page'' extension.</td> |
| 84 | +</tr> |
| 85 | +<tr> |
| 86 | + <td>type</td> |
| 87 | + <td>fm-add-cat</td> |
| 88 | + <td>Test Category 1</td> |
| 89 | +</tr> |
| 90 | +<tr> |
| 91 | + <td>click</td> |
| 92 | + <td>fm-add-cat-button</td> |
| 93 | + <td></td> |
| 94 | +</tr> |
| 95 | +<tr> |
| 96 | + <td>type</td> |
| 97 | + <td>fm-add-cat</td> |
| 98 | + <td>test Category 1</td> |
| 99 | +</tr> |
| 100 | +<tr> |
| 101 | + <td>click</td> |
| 102 | + <td>fm-add-cat-button</td> |
| 103 | + <td></td> |
| 104 | +</tr> |
| 105 | +<tr> |
| 106 | + <td>type</td> |
| 107 | + <td>fm-add-cat</td> |
| 108 | + <td>Test Category 2</td> |
| 109 | +</tr> |
| 110 | +<tr> |
| 111 | + <td>click</td> |
| 112 | + <td>fm-add-cat-button</td> |
| 113 | + <td></td> |
| 114 | +</tr> |
| 115 | +<tr> |
| 116 | + <td>type</td> |
| 117 | + <td>fm-add-cat</td> |
| 118 | + <td>Test Category 3</td> |
| 119 | +</tr> |
| 120 | +<tr> |
| 121 | + <td>click</td> |
| 122 | + <td>fm-add-cat-button</td> |
| 123 | + <td></td> |
| 124 | +</tr> |
| 125 | +<tr> |
| 126 | + <td>clickAndWait</td> |
| 127 | + <td>//input[@value='Classic mode']</td> |
| 128 | + <td></td> |
| 129 | +</tr> |
| 130 | +<tr> |
| 131 | + <td>clickAndWait</td> |
| 132 | + <td>//input[@value='Generic mode']</td> |
| 133 | + <td></td> |
| 134 | +</tr> |
| 135 | +<tr> |
| 136 | + <td>clickAndWait</td> |
| 137 | + <td>wpPreview</td> |
| 138 | + <td></td> |
| 139 | +</tr> |
| 140 | +<tr> |
| 141 | + <td>clickAndWait</td> |
| 142 | + <td>wpDiff</td> |
| 143 | + <td></td> |
| 144 | +</tr> |
| 145 | +<tr> |
| 146 | + <td>clickAndWait</td> |
| 147 | + <td>wpSave</td> |
| 148 | + <td></td> |
| 149 | +</tr> |
| 150 | +<tr> |
| 151 | + <td>clickAndWait</td> |
| 152 | + <td>link=Edit</td> |
| 153 | + <td></td> |
| 154 | +</tr> |
| 155 | +<tr> |
| 156 | + <td>click</td> |
| 157 | + <td>enable-1</td> |
| 158 | + <td></td> |
| 159 | +</tr> |
| 160 | +<tr> |
| 161 | + <td>click</td> |
| 162 | + <td>category-Test Category 1</td> |
| 163 | + <td></td> |
| 164 | +</tr> |
| 165 | +<tr> |
| 166 | + <td>clickAndWait</td> |
| 167 | + <td>wpSave</td> |
| 168 | + <td></td> |
| 169 | +</tr> |
| 170 | + |
| 171 | +</tbody></table> |
| 172 | +</body> |
| 173 | +</html> |
Index: trunk/testing/tests/ImageMap/WETE.xml |
— | — | @@ -0,0 +1,18 @@ |
| 2 | +<?xml version="1.0"?> |
| 3 | +<exttests> |
| 4 | +<exttest> |
| 5 | + <name>Imagemap</name> |
| 6 | + <code><![CDATA[<imagemap> |
| 7 | +Image:Hello.jpg|200px|a friendly greeting |
| 8 | +poly 131 45 213 41 210 110 127 109 [[Display]] |
| 9 | +poly 104 126 105 171 269 162 267 124 [[Keyboard]] |
| 10 | +rect 15 95 94 176 [[Foo type A]] |
| 11 | +# A comment, this line is ignored |
| 12 | +circle 57 57 20 [[Foo type C]] |
| 13 | +desc bottom-left |
| 14 | +</imagemap>]]></code> |
| 15 | + <expect><![CDATA[<p class="error">Error: image is invalid or non-existent</p>]]></expect> |
| 16 | + <result><![CDATA[<p class="error">Error: image is invalid or non-existent</p>]]></result> |
| 17 | + <diff><![CDATA[ <p class="error">Error: image is invalid or non-existent</p>]]></diff> |
| 18 | +</exttest> |
| 19 | +</exttests> |
Index: trunk/testing/tests/UniwikiCreatePage/Selenium.html |
— | — | @@ -0,0 +1,47 @@ |
| 2 | +<?xml version="1.0" encoding="UTF-8"?> |
| 3 | +<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> |
| 4 | +<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> |
| 5 | +<head profile="http://selenium-ide.openqa.org/profiles/test-case"> |
| 6 | +<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> |
| 7 | +<link rel="selenium.base" href="http://12.wikiation.nl/revisions/R14/" /> |
| 8 | +<title>Selenium</title> |
| 9 | +</head> |
| 10 | +<body> |
| 11 | +<table cellpadding="1" cellspacing="1" border="1"> |
| 12 | +<thead> |
| 13 | +<tr><td rowspan="1" colspan="3">Selenium</td></tr> |
| 14 | +</thead><tbody> |
| 15 | +<tr> |
| 16 | + <td>open</td> |
| 17 | + <td>index.php?title=Special:SpecialPages</td> |
| 18 | + <td></td> |
| 19 | +</tr> |
| 20 | +<tr> |
| 21 | + <td>clickAndWait</td> |
| 22 | + <td>link=Create a page</td> |
| 23 | + <td></td> |
| 24 | +</tr> |
| 25 | +<tr> |
| 26 | + <td>type</td> |
| 27 | + <td>target</td> |
| 28 | + <td>Template:Test Page 1</td> |
| 29 | +</tr> |
| 30 | +<tr> |
| 31 | + <td>clickAndWait</td> |
| 32 | + <td>//input[@value='Submit']</td> |
| 33 | + <td></td> |
| 34 | +</tr> |
| 35 | +<tr> |
| 36 | + <td>verifyTextPresent</td> |
| 37 | + <td>Editing Template:Test Page 1</td> |
| 38 | + <td></td> |
| 39 | +</tr> |
| 40 | +<tr> |
| 41 | + <td>verifyTextPresent</td> |
| 42 | + <td>You have followed a link to a page that does not exist yet. To create the page, start typing in the box below (see the help page for more info). <br /> If you are here by mistake, click your browser's back button.</td> |
| 43 | + <td></td> |
| 44 | +</tr> |
| 45 | + |
| 46 | +</tbody></table> |
| 47 | +</body> |
| 48 | +</html> |
Index: trunk/testing/tests/Cite/WETE.xml |
— | — | @@ -0,0 +1,39 @@ |
| 2 | +<?xml version="1.0"?> |
| 3 | +<exttests> |
| 4 | + <exttest> |
| 5 | + <name>Individual regular reference</name> |
| 6 | + <code><![CDATA[Individual regular reference.<ref>This is a regular reference.</ref><references/>]]></code> |
| 7 | + <expect><![CDATA[Individual regular reference.<sup id="cite_ref-0" class="reference"><a href="#cite_note-0" title="">[1]</a></sup><ol class="references"><li id="cite_note-0"><a href="#cite_ref-0" title="">.</a> This is a regular reference.</li></ol>]]></expect> |
| 8 | + </exttest> |
| 9 | + <exttest> |
| 10 | + <name>Multiple regular references</name> |
| 11 | + <code><![CDATA[Multiple regular references.<ref>This is the first in reference.</ref><ref>This is the second reference.</ref><ref>This is the third reference.</ref><ref>This is the fourth reference.</ref><references/>]]></code> |
| 12 | + <expect><![CDATA[Multiple regular references.<sup id="cite_ref-0" class="reference"><a href="#cite_note-0" title="">[1]</a></sup><sup id="cite_ref-1" class="reference"><a href="#cite_note-1" title="">[2]</a></sup><sup id="cite_ref-2" class="reference"><a href="#cite_note-2" title="">[3]</a></sup><sup id="cite_ref-3" class="reference"><a href="#cite_note-3" title="">[4]</a></sup><ol class="references"><li id="cite_note-0"><a href="#cite_ref-0" title="">.</a> This is the first in reference.</li> |
| 13 | +<li id="cite_note-1"><a href="#cite_ref-1" title="">.</a> This is the second reference.</li> |
| 14 | +<li id="cite_note-2"><a href="#cite_ref-2" title="">.</a> This is the third reference.</li> |
| 15 | +<li id="cite_note-3"><a href="#cite_ref-3" title="">.</a> This is the fourth reference.</li></ol>]]></expect> |
| 16 | + </exttest> |
| 17 | + <exttest> |
| 18 | + <name>Named references</name> |
| 19 | + <code><![CDATA[Named references.<ref name="test">This is a reference named "test".</ref><ref name="test"/><ref name="test"/><ref name="test"/><references/>]]></code> |
| 20 | + <expect><![CDATA[Named references.<sup id="cite_ref-test_0-0" class="reference"><a href="#cite_note-test-0" title="">[1]</a></sup><sup id="cite_ref-test_0-1" class="reference"><a href="#cite_note-test-0" title="">[1]</a></sup><sup id="cite_ref-test_0-2" class="reference"><a href="#cite_note-test-0" title="">[1]</a></sup><sup id="cite_ref-test_0-3" class="reference"><a href="#cite_note-test-0" title="">[1]</a></sup><ol class="references"><li id="cite_note-test-0">. <sup><a href="#cite_ref-test_0-0" title="">1.0</a></sup> <sup><a href="#cite_ref-test_0-1" title="">1.1</a></sup> <sup><a href="#cite_ref-test_0-2" title="">1.2</a></sup> <sup><a href="#cite_ref-test_0-3" title="">1.3</a></sup> This is a reference named "test".</li></ol>]]></expect> |
| 21 | + </exttest> |
| 22 | + <exttest> |
| 23 | + <name>Grouped references</name> |
| 24 | + <code><![CDATA[Grouped references.<ref group="testgroup">This is the first group reference.</ref><ref group="testgroup">This is the second group reference.</ref><ref group="testgroup">This is the third group reference.</ref><ref group="testgroup">This is the fourth group reference.</ref><references group="testgroup"/>]]></code> |
| 25 | + <expect><![CDATA[Grouped references.<sup id="cite_ref-0" class="reference"><a href="#cite_note-0" title="">[testgroup 1]</a></sup><sup id="cite_ref-1" class="reference"><a href="#cite_note-1" title="">[testgroup 2]</a></sup><sup id="cite_ref-2" class="reference"><a href="#cite_note-2" title="">[testgroup 3]</a></sup><sup id="cite_ref-3" class="reference"><a href="#cite_note-3" title="">[testgroup 4]</a></sup><ol class="references"><li id="cite_note-0"><a href="#cite_ref-0" title="">.</a> This is the first group reference.</li> |
| 26 | +<li id="cite_note-1"><a href="#cite_ref-1" title="">.</a> This is the second group reference.</li> |
| 27 | +<li id="cite_note-2"><a href="#cite_ref-2" title="">.</a> This is the third group reference.</li> |
| 28 | +<li id="cite_note-3"><a href="#cite_ref-3" title="">.</a> This is the fourth group reference.</li></ol>]]></expect> |
| 29 | + </exttest> |
| 30 | + <exttest> |
| 31 | + <name>Named grouped references</name> |
| 32 | + <code><![CDATA[Named grouped references.<ref name="test" group="testgroup">This is the first named group references.</ref><ref name="test" group="testgroup">This is the second named group references.</ref><ref name="test" group="testgroup">This is the third named group reference.</ref><ref name="test" group="testgroup">This is the fourth named group reference.</ref><references group="testgroup"/>]]></code> |
| 33 | + <expect><![CDATA[Named grouped references.<sup id="cite_ref-test_0-0" class="reference"><a href="#cite_note-test-0" title="">[testgroup 1]</a></sup><sup id="cite_ref-test_0-1" class="reference"><a href="#cite_note-test-0" title="">[testgroup 1]</a></sup><sup id="cite_ref-test_0-2" class="reference"><a href="#cite_note-test-0" title="">[testgroup 1]</a></sup><sup id="cite_ref-test_0-3" class="reference"><a href="#cite_note-test-0" title="">[testgroup 1]</a></sup><ol class="references"><li id="cite_note-test-0">. <sup><a href="#cite_ref-test_0-0" title="">1.0</a></sup> <sup><a href="#cite_ref-test_0-1" title="">1.1</a></sup> <sup><a href="#cite_ref-test_0-2" title="">1.2</a></sup> <sup><a href="#cite_ref-test_0-3" title="">1.3</a></sup> This is the first named group references.</li></ol>]]></expect> |
| 34 | + </exttest> |
| 35 | + <exttest> |
| 36 | + <name>newtest</name> |
| 37 | + <code><![CDATA[Named grouped references.<ref name="test" group="testgroup">This is the first named group references.</ref><ref name="test" group="testgroup">This is the second named group references.</ref><ref name="test" group="testgroup">This is the third named group reference.</ref><ref name="test" group="testgroup">This is the fourth named group reference.</ref><references group="testgroup"/>]]></code> |
| 38 | + <expect><![CDATA[Named grouped references.<sup id="cite_ref-test_0-0" class="reference"><a href="#cite_note-test-0" title="">[testgroup 1]</a></sup><sup id="cite_ref-test_0-1" class="reference"><a href="#cite_note-test-0" title="">[testgroup 1]</a></sup><sup id="cite_ref-test_0-2" class="reference"><a href="#cite_note-test-0" title="">[testgroup 1]</a></sup><sup id="cite_ref-test_0-3" class="reference"><a href="#cite_note-test-0" title="">[testgroup 1]</a></sup><ol class="references"><li id="cite_note-test-0">. <sup><a href="#cite_ref-test_0-0" title="">1.0</a></sup> <sup><a href="#cite_ref-test_0-1" title="">1.1</a></sup> <sup><a href="#cite_ref-test_0-2" title="">1.2</a></sup> <sup><a href="#cite_ref-test_0-3" title="">1.3</a></sup> This is the first named group references.</li></ol>]]></expect> |
| 39 | + </exttest> |
| 40 | +</exttests> |