#
-# 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.
# limitations under the License.
#
+unified_mode true
+
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
property :tag, :kind_of => String
property :reference, :kind_of => String
-property :compose, :kind_of => [TrueClass, FalseClass], :default => false
property :update_site, :kind_of => [TrueClass, FalseClass], :default => true
action :create do
source new_resource.source
owner node[:mediawiki][:user]
group node[:mediawiki][:group]
- mode 0o755
+ mode "755"
files_owner node[:mediawiki][:user]
files_group node[:mediawiki][:group]
- files_mode 0o755
+ files_mode "755"
end
else
extension_repository = new_resource.repository || default_repository
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]
- mode 0o664
+ mode "664"
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) }
+ mode "664"
end
end
- if new_resource.compose # ~FC023
- execute "composer-#{new_resource.extension}" do
- action :nothing
- command "composer install --no-dev"
- cwd extension_directory
- user node[:mediawiki][:user]
- group node[:mediawiki][:group]
- subscribes :run, "git[#{extension_directory}]"
- 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]
+ environment "COMPOSER_HOME" => site_directory
+ only_if { ::File.exist?("#{extension_directory}/composer.json") }
+ subscribes :run, "git[#{extension_directory}]"
end
end
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