precompile.rb 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. # Copyright (C) 2012-2025 Zammad Foundation, https://zammad-foundation.org/
  2. require_dependency 'tasks/zammad/command.rb'
  3. module Tasks
  4. module Zammad
  5. module Package
  6. # Package migrations must not be executed in the same process that also executed
  7. # Package.install or Package.link, as the codebase is in an inconsistent state.
  8. # This is enforced by Tasks:Zammad::Command which prevents command chaining.
  9. class Precompile < Tasks::Zammad::Command
  10. def self.description
  11. 'Execute all package related precompilations.'
  12. end
  13. def self.setup_javascript_environment
  14. return if !::Package.app_frontend_files?
  15. if ::Package.app_package_installation?
  16. exec_command('zammad run pnpm install --production=false')
  17. exec_command('zammad run pnpm run generate-setting-types')
  18. exec_command('zammad run pnpm run generate-graphql-api')
  19. else
  20. exec_command('pnpm install --production=false')
  21. exec_command('pnpm run generate-setting-types')
  22. exec_command('pnpm run generate-graphql-api')
  23. end
  24. end
  25. def self.assets_precompile
  26. if ::Package.app_package_installation?
  27. exec_command('zammad run bundle exec vite clobber')
  28. exec_command('zammad run rake assets:precompile')
  29. else
  30. exec_command('bundle exec vite clobber')
  31. exec_command('rake assets:precompile')
  32. end
  33. end
  34. def self.task_handler
  35. setup_javascript_environment
  36. assets_precompile
  37. puts 'done.'
  38. end
  39. end
  40. end
  41. end
  42. end