X-Git-Url: https://git.openstreetmap.org/chef.git/blobdiff_plain/bfe36fa8bbf3d72b406d356c985bfe2d5ab993ca..316225f5a6da64609cef4d090047b92bffef49a6:/cookbooks/mediawiki/resources/skin.rb diff --git a/cookbooks/mediawiki/resources/skin.rb b/cookbooks/mediawiki/resources/skin.rb index 3aa00ce25..1f897c53b 100644 --- a/cookbooks/mediawiki/resources/skin.rb +++ b/cookbooks/mediawiki/resources/skin.rb @@ -17,18 +17,99 @@ # limitations under the License. # -actions :create, :delete default_action :create -attribute :name, :kind_of => 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 :revision, :kind_of => String -attribute :update_site, :kind_of => [TrueClass, FalseClass], :default => true +property :skin, :kind_of => String, :name_attribute => true +property :site, :kind_of => String, :required => true +property :source, :kind_of => String +property :template, :kind_of => String +property :variables, :kind_of => Hash, :default => {} +property :version, :kind_of => String +property :repository, :kind_of => String +property :revision, :kind_of => String +property :update_site, :kind_of => [TrueClass, FalseClass], :default => true + +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 0o755 + files_owner node[:mediawiki][:user] + files_group node[:mediawiki][:group] + files_mode 0o755 + end + else + skin_repository = new_resource.repository || default_repository + skin_revision = new_resource.revision || "REL#{skin_version}".tr(".", "_") + + git skin_directory do + action :sync + repository skin_repository + revision skin_revision + 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 + declare_resource :template, "#{mediawiki_directory}/LocalSettings.d/Skin-#{new_resource.skin}.inc.php" do + cookbook "mediawiki" + source new_resource.template + user node[:mediawiki][:user] + group node[:mediawiki][:group] + mode 0o664 + variables new_resource.variables + end + else + skin_script = "#{skin_directory}/#{new_resource.skin}.php" + + file "#{mediawiki_directory}/LocalSettings.d/Skin-#{new_resource.skin}.inc.php" do + content "