From: Grant Slater Date: Wed, 1 Apr 2015 00:23:26 +0000 (+0100) Subject: mediawiki: Add skin provider + default 1.14 skins X-Git-Url: https://git.openstreetmap.org/chef.git/commitdiff_plain/3a38185237fab2c369bce4cdc3723f1fa563c1c1 mediawiki: Add skin provider + default 1.14 skins --- diff --git a/cookbooks/mediawiki/providers/extension.rb b/cookbooks/mediawiki/providers/extension.rb index 71a9633a8..cb4cc5c84 100644 --- a/cookbooks/mediawiki/providers/extension.rb +++ b/cookbooks/mediawiki/providers/extension.rb @@ -40,7 +40,7 @@ action :create do extension_reference = if new_resource.tag "refs/tags/#{new_resource.tag}" else - "refs/heads/REL#{extension_version}".tr(".", "_") + "REL#{extension_version}".tr(".", "_") end git extension_directory do diff --git a/cookbooks/mediawiki/providers/site.rb b/cookbooks/mediawiki/providers/site.rb index c5b6927a6..24a3ae984 100644 --- a/cookbooks/mediawiki/providers/site.rb +++ b/cookbooks/mediawiki/providers/site.rb @@ -160,6 +160,26 @@ action :create do :database_params => new_resource.database_params end + mediawiki_skin "CologneBlue" do + site new_resource.name + update_site false + end + + mediawiki_skin "Modern" do + site new_resource.name + update_site false + end + + mediawiki_skin "MonoBook" do + site new_resource.name + update_site false + end + + mediawiki_skin "Vector" do + site new_resource.name + update_site false + end + mediawiki_extension "Cite" do site new_resource.name template "mw-ext-Cite.inc.php.erb" diff --git a/cookbooks/mediawiki/providers/skin.rb b/cookbooks/mediawiki/providers/skin.rb new file mode 100644 index 000000000..f8892aa5f --- /dev/null +++ b/cookbooks/mediawiki/providers/skin.rb @@ -0,0 +1,111 @@ +# +# Cookbook Name:: mediawiki +# Provider:: mediawiki_skin +# +# Copyright 2015, OpenStreetMap Foundation +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. +# + +def whyrun_supported? + true +end + +use_inline_resources + +action :create do + if new_resource.source + remote_directory skin_directory do + cookbook "mediawiki" + source new_resource.source + owner node[:mediawiki][:user] + group node[:mediawiki][:group] + mode 0755 + files_owner node[:mediawiki][:user] + files_group node[:mediawiki][:group] + files_mode 0755 + end + else + skin_repository = new_resource.repository || default_repository + skin_reference = if new_resource.tag + "refs/tags/#{new_resource.tag}" + else + "REL#{skin_version}".tr(".", "_") + end + + git skin_directory do + action :sync + repository skin_repository + reference skin_reference + enable_submodules true + user node[:mediawiki][:user] + group node[:mediawiki][:group] + ignore_failure skin_repository.start_with?("git://github.com/wikimedia/mediawiki-skins") + end + end + + if new_resource.template # ~FC023 + template "#{mediawiki_directory}/LocalSettings.d/Skin-#{new_resource.name}.inc.php" do + cookbook "mediawiki" + source new_resource.template + user node[:mediawiki][:user] + group node[:mediawiki][:group] + mode 0664 + variables new_resource.variables + end + else + skin_script = "#{skin_directory}/#{new_resource.name}.php" + + file "#{mediawiki_directory}/LocalSettings.d/Skin-#{new_resource.name}.inc.php" do + action :create + content " String, :name_attribute => true +attribute :site, :kind_of => String, :required => true +attribute :source, :kind_of => String +attribute :template, :kind_of => String +attribute :variables, :kind_of => Hash, :default => {} +attribute :version, :kind_of => String +attribute :repository, :kind_of => String +attribute :tag, :kind_of => String +attribute :update_site, :kind_of => [TrueClass, FalseClass], :default => true + +def after_created + if update_site + notifies :update, "mediawik_site[site]" + else + site_directory = node[:mediawiki][:sites][site][:directory] + + notifies :create, "template[#{site_directory}/w/LocalSettings.php]" + notifies :run, "execute[#{site_directory}/w/maintenance/update.php]" + end +end