#
-# Cookbook Name:: mediawiki
+# Cookbook:: mediawiki
# Resource:: mediawiki_extension
#
-# Copyright 2015, OpenStreetMap Foundation
+# 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.
default_action :create
-property :extension, :kind_of => String, :name_attribute => true
+property :extension, :kind_of => String, :name_property => true
property :site, :kind_of => String, :required => true
property :source, :kind_of => String
property :template, :kind_of => String
+property :template_cookbook, :kind_of => String, :default => "mediawiki"
property :variables, :kind_of => Hash, :default => {}
property :version, :kind_of => String
property :repository, :kind_of => String
action :sync
repository extension_repository
reference extension_reference
+ depth 1
enable_submodules true
user node[:mediawiki][:user]
group node[:mediawiki][:group]
- ignore_failure extension_repository.start_with?("git://github.com/wikimedia/mediawiki-extensions")
+ ignore_failure extension_repository.start_with?("https://github.com/wikimedia/mediawiki-extensions")
end
end
- if new_resource.template # ~FC023
+ if new_resource.template
declare_resource :template, "#{mediawiki_directory}/LocalSettings.d/Ext-#{new_resource.extension}.inc.php" do
- cookbook "mediawiki"
+ cookbook new_resource.template_cookbook
source new_resource.template
user node[:mediawiki][:user]
group node[:mediawiki][:group]
variables new_resource.variables
end
else
- extension_script = "#{extension_directory}/#{new_resource.extension}.php"
-
file "#{mediawiki_directory}/LocalSettings.d/Ext-#{new_resource.extension}.inc.php" do
content "<?php wfLoadExtension( '#{new_resource.extension}' );\n"
user node[:mediawiki][:user]
group node[:mediawiki][:group]
mode 0o664
- only_if { ::File.exist?(extension_script) }
end
end
+
+ execute "#{extension_directory}/composer.json" do
+ action :nothing
+ command "composer update --no-dev"
+ cwd mediawiki_directory
+ user node[:mediawiki][:user]
+ group node[:mediawiki][:group]
+ only_if { ::File.exist?("#{extension_directory}/composer.json") }
+ subscribes :run, "git[#{extension_directory}]"
+ end
end
action :delete do
end
def default_repository
- "git://github.com/wikimedia/mediawiki-extensions-#{new_resource.extension}.git"
+ "https://github.com/wikimedia/mediawiki-extensions-#{new_resource.extension}.git"
end
end