Browse Source

Fixes #5399 - zammad:package:bundle_install idea does not work out.

Co-authored-by: Martin Gruner <mg@zammad.com>
Rolf Schmidt 4 months ago
parent
commit
f66ab5c630

+ 2 - 0
app/assets/javascripts/app/controllers/package.coffee

@@ -23,6 +23,7 @@ class Package extends App.ControllerSubContent
       success: (data) =>
         @packages             = data.packages
         @package_installation = data.package_installation
+        @local_gemfiles       = data.local_gemfiles
         @render()
       )
 
@@ -42,6 +43,7 @@ class Package extends App.ControllerSubContent
       head:     __('Dashboard')
       packages: @packages
       package_installation: @package_installation
+      local_gemfiles: @local_gemfiles
     )
 
   action: (e) ->

+ 5 - 2
app/assets/javascripts/app/views/package.jst.eco

@@ -12,8 +12,11 @@
     <%- @T('After installing, updating, or uninstalling packages the following commands need to be executed on the server:') %>
     <ul>
     <% if @package_installation: %>
-      <li><code>root> zammad run rake zammad:package:post_install</code></li>
-      <% else: %>
+      <li><code>root> /opt/zammad/contrib/packager.io/postinstall.sh</code></li>
+    <% else: %>
+      <% if @local_gemfiles: %>
+      <li><code>zammad> bundle install</code></li>
+      <% end %>
       <li><code>zammad> rake zammad:package:post_install</code></li>
     <% end %>
       <li><code>root> systemctl restart zammad</code></li>

+ 1 - 0
app/controllers/packages_controller.rb

@@ -8,6 +8,7 @@ class PackagesController < ApplicationController
     render json: {
       packages:             Package.reorder('name'),
       package_installation: Package.app_package_installation?,
+      local_gemfiles:       Package.gem_files?,
     }
   end
 

+ 10 - 1
contrib/packager.io/functions

@@ -336,8 +336,16 @@ function elasticsearch_searchindex_rebuild () {
   fi
 }
 
+function detect_local_gemfiles () {
+  if ls ${ZAMMAD_DIR}/Gemfile.local* 1> /dev/null 2>&1; then
+    zammad config:set BUNDLE_DEPLOYMENT=0
+    zammad run bundle config set --local deployment 'false'
+    zammad run bundle install
+  fi
+}
+
 function detect_zammad_packages () {
-  if [ "$(zammad run rails r 'puts Package.count.positive?')" == "true" ] && [ -n "$(which pnpm 2> /dev/null)" ] ; then
+  if [ "$(zammad run rails r 'puts Package.count.positive?')" == "true" ]; then
     echo "# Detected custom packages..."
     ZAMMAD_PACKAGES="yes"
   else
@@ -352,6 +360,7 @@ function zammad_packages_reinstall_all () {
   if [ "${ZAMMAD_PACKAGES}" == "yes" ]; then
     echo "# Setup custom packages files..."
     zammad run rake zammad:package:reinstall_all
+    detect_local_gemfiles
     zammad run rake zammad:package:post_install
   fi
 }

+ 0 - 4
lib/tasks/zammad/package/bundle_install.rake

@@ -1,4 +0,0 @@
-# Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
-
-require_dependency 'tasks/zammad/package/bundle_install.rb'
-Tasks::Zammad::Package::BundleInstall.register_rake_task

+ 0 - 33
lib/tasks/zammad/package/bundle_install.rb

@@ -1,33 +0,0 @@
-# Copyright (C) 2012-2024 Zammad Foundation, https://zammad-foundation.org/
-
-require_dependency 'tasks/zammad/command.rb'
-
-module Tasks
-  module Zammad
-    module Package
-      class BundleInstall < Tasks::Zammad::Command
-        def self.description
-          'Install package related gem files.'
-        end
-
-        def self.gem_install
-          return if !::Package.gem_files?
-
-          if ::Package.app_package_installation?
-            exec_command('zammad config:set BUNDLE_DEPLOYMENT=0')
-            exec_command("zammad run bundle config set --local deployment 'false'")
-            exec_command('zammad run bundle install')
-          else
-            exec_command('bundle install')
-          end
-        end
-
-        def self.task_handler
-          gem_install
-
-          puts 'done.'
-        end
-      end
-    end
-  end
-end

+ 0 - 2
lib/tasks/zammad/package/post_install.rb

@@ -12,11 +12,9 @@ module Tasks
 
         def self.task_handler
           if ::Package.app_package_installation?
-            exec_command('zammad run rake zammad:package:bundle_install')
             exec_command('zammad run rake zammad:package:migrate')
             exec_command('zammad run rake zammad:package:precompile')
           else
-            exec_command('rake zammad:package:bundle_install')
             exec_command('rake zammad:package:migrate')
             exec_command('rake zammad:package:precompile')
           end