diff --git a/manifests/extension.pp b/manifests/extension.pp new file mode 100644 index 0000000..62264e7 --- /dev/null +++ b/manifests/extension.pp @@ -0,0 +1,43 @@ +define mediawiki::extension ( + $type = 'extension', + $ensure = undef, + $source = undef, + $revision = undef, +) { + if $type != 'extension' and $type != 'skin' { + fail( '$type must be extension or skin' ) + } + + if $ensure == undef { + $vcsensure = $::lsbdistcodename ? { + 'precise' => present, + 'trusty' => latest, # keep up to date + } + } else { + $vcsensure = $ensure + } + if $revision == undef { + $vcsrevision = $::lsbdistcodename ? { + 'precise' => 'origin/master', # madness + 'trusty' => 'origin/REL1_27', + } + } else { + $vcsrevision = $revision + } + if $type == 'extension' { + $path = "extensions/${name}" + } elsif $type == 'skin' { + $path = "skins/${name}" + } + if $source == undef { + $vcssource = "https://gerrit.wikimedia.org/r/p/mediawiki/${path}.git" + } else { + $vcssource = $source + } + vcsrepo { "/srv/mediawiki/w/${path}": + ensure => $vcsensure, + provider => git, + source => $vcssource, + revision => $vcsrevision, + } +} diff --git a/manifests/init.pp b/manifests/init.pp index e2c4a44..bc12c95 100644 --- a/manifests/init.pp +++ b/manifests/init.pp @@ -43,6 +43,52 @@ class mediawiki( include ::mediawiki::php include ::mediawiki::app + mediawiki::extension { [ 'ConfirmEdit', + 'OpenID', + 'Renameuser', + 'WikiEditor', + 'CodeEditor', + 'Scribunto', + 'Gadgets', + 'CategoryTree', + 'ParserFunctions', + 'SyntaxHighlight_GeSHi', + 'Cite', + 'cldr', + 'Babel', + 'Translate', + 'Collection', + 'Nuke', + 'AntiSpoof', + 'Mantle', + 'MobileFrontend', + 'SubPageList3', + 'ReplaceText', + 'googleAnalytics', + 'Echo', + 'UniversalLanguageSelector', + 'Elastica', + 'CirrusSearch', + 'SpamBlacklist', + 'SmiteSpam' ]: + } + + mediawiki::extension { 'EmbedVideo': + ensure => present, + source => 'https://github.com/HydraWiki/mediawiki-embedvideo.git', + revision => 'origin/master', # Not from Wikimedia repos :( + } + if $::lsbdistcodename == 'precise' { + # On trusty we use 1.27, which has this extension merged into core + # See https://phabricator.wikimedia.org/T108213 + mediawiki::extension { 'OpenSearchXml': } + } + + mediawiki::extension { 'strapping': + type => 'skin', + source => 'https://gerrit.wikimedia.org/r/p/mediawiki/skins/mediawiki-strapping.git', + } + file { '/srv/mediawiki/w/LocalSettings.php': ensure => link, target => '/srv/mediawiki/Settings.php', diff --git a/templates/Settings.php.erb b/templates/Settings.php.erb index 94a7125..cddf94f 100644 --- a/templates/Settings.php.erb +++ b/templates/Settings.php.erb @@ -278,8 +278,10 @@ include_once("$IP/extensions/Mantle/Mantle.php"); require_once("$IP/extensions/MobileFrontend/MobileFrontend.php"); $wgMFAutodetectMobileView = true; -# Needed by MobileFrontend -require_once( "$IP/extensions/OpenSearchXml/OpenSearchXml.php" ); +if ( file_exists( "$IP/extensions/OpenSearchXml" ) ) { + # Needed by MobileFrontend + require_once( "$IP/extensions/OpenSearchXml/OpenSearchXml.php" ); +} require_once( "$IP/extensions/SubPageList3/SubPageList3.php" );