X-Git-Url: https://git.openstreetmap.org./chef.git/blobdiff_plain/18e12b0e123fc3e5f344682f884feabc12da0f5a..c7cf05063d1fc010c6579e3fa44862637687a79e:/cookbooks/mediawiki/resources/extension.rb diff --git a/cookbooks/mediawiki/resources/extension.rb b/cookbooks/mediawiki/resources/extension.rb index 6dc79ea7e..4e44f18c2 100644 --- a/cookbooks/mediawiki/resources/extension.rb +++ b/cookbooks/mediawiki/resources/extension.rb @@ -1,8 +1,8 @@ # -# 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. @@ -17,12 +17,15 @@ # 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 @@ -37,10 +40,10 @@ 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 @@ -56,33 +59,42 @@ action :create do 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 " site_directory + only_if { ::File.exist?("#{extension_directory}/composer.json") } + subscribes :run, "git[#{extension_directory}]" + end end action :delete do @@ -114,7 +126,7 @@ action_class 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