]> git.openstreetmap.org Git - chef.git/commitdiff
Allow civicrm extensions to be installed from a downloaded zip
authorTom Hughes <tom@compton.nu>
Sun, 27 Aug 2023 18:39:36 +0000 (19:39 +0100)
committerTom Hughes <tom@compton.nu>
Sun, 27 Aug 2023 19:37:54 +0000 (20:37 +0100)
cookbooks/civicrm/attributes/default.rb
cookbooks/civicrm/recipes/default.rb

index 0793e418dfd48196c3b92736f5fca3f42661e618..af35076d5905ed4d5da2116f2e2ca779aec5ade2 100644 (file)
@@ -11,10 +11,8 @@ default[:civicrm][:extensions][:emailapi][:repository] = "https://lab.civicrm.or
 default[:civicrm][:extensions][:emailapi][:revision] = "2.9"
 
 # fancy email templates
-# Do not update from git! See https://civicrm.stackexchange.com/questions/25763/mosaico-packages-are-missing-beta-4
-# default[:civicrm][:extensions][:mosaico][:name] = "uk.co.vedaconsulting.mosaico"
-# default[:civicrm][:extensions][:mosaico][:repository] = "https://github.com/veda-consulting-company/uk.co.vedaconsulting.mosaico.git"
-# default[:civicrm][:extensions][:mosaico][:revision] = "3.2"
+default[:civicrm][:extensions][:mosaico][:name] = "uk.co.vedaconsulting.mosaico"
+default[:civicrm][:extensions][:mosaico][:zip] = "https://download.civicrm.org/extension/uk.co.vedaconsulting.mosaico/3.2.1691060437/uk.co.vedaconsulting.mosaico-3.2.1691060437.zip"
 
 # validate that osm username exists, simple check
 default[:civicrm][:extensions][:username][:name] = "org.openstreetmap.username"
index f7469201476515017fc2c9279e02360708d08272..92ed283a613e9318489739d83c858ce6c08b06b3 100644 (file)
@@ -161,12 +161,32 @@ directory extensions_directory do
 end
 
 node[:civicrm][:extensions].each_value do |details|
-  git "#{extensions_directory}/#{details[:name]}" do
-    action :sync
-    repository details[:repository]
-    revision details[:revision]
-    user "wordpress"
-    group "wordpress"
+  if details[:repository]
+    git "#{extensions_directory}/#{details[:name]}" do
+      action :sync
+      repository details[:repository]
+      revision details[:revision]
+      user "wordpress"
+      group "wordpress"
+    end
+  elsif details[:zip]
+    remote_file "#{cache_dir}/#{details[:name]}.zip" do
+      source details[:zip]
+      owner "root"
+      group "root"
+      mode "644"
+      backup false
+    end
+
+    archive_file "#{cache_dir}/#{details[:name]}.zip" do
+      action :nothing
+      destination "#{extensions_directory}/#{details[:name]}"
+      strip_components 1
+      owner "wordpress"
+      group "wordpress"
+      overwrite true
+      subscribes :extract, "remote_file[#{cache_dir}/#{details[:name]}.zip]", :immediately
+    end
   end
 end