From 7a9a22f3dd62ab4c1257db38f9b8c923bdcc4c8c 2016-11-18 12:14:41 From: Jean-Philippe Lang Date: 2016-11-18 12:14:41 Subject: [PATCH] Change plugins directory through the configuration.yml file (#24007). Patch by Helder Manuel Torres Vieira. git-svn-id: http://svn.redmine.org/redmine/trunk@15963 e93f8b46-1217-0410-a6f0-8f06a7374b81 --- diff --git a/config/configuration.yml.example b/config/configuration.yml.example index 3522ef6..83232f3 100644 --- a/config/configuration.yml.example +++ b/config/configuration.yml.example @@ -75,6 +75,15 @@ default: # attachments_storage_path: D:/redmine/files attachments_storage_path: + # Absolute path to the directory where plugins are stored. + # The default is the 'plugins' directory in your Redmine instance. + # Your Redmine instance needs to have read permission on this + # directory. + # Examples: + # plugins_path: /var/redmine/plugins + # plugins_path: D:/redmine/plugins + plugins_path: + # Configuration of the autologin cookie. # autologin_cookie_name: the name of the cookie (default: autologin) # autologin_cookie_path: the cookie path (default: /) diff --git a/lib/generators/redmine_plugin/redmine_plugin_generator.rb b/lib/generators/redmine_plugin/redmine_plugin_generator.rb index 5623663..a9d7015 100644 --- a/lib/generators/redmine_plugin/redmine_plugin_generator.rb +++ b/lib/generators/redmine_plugin/redmine_plugin_generator.rb @@ -7,7 +7,12 @@ class RedminePluginGenerator < Rails::Generators::NamedBase super @plugin_name = file_name.underscore @plugin_pretty_name = plugin_name.titleize - @plugin_path = "plugins/#{plugin_name}" + if Redmine::Configuration['plugins_path'].nil? + @plugin_path = File.join(Rails.root, 'plugins', plugin_name) + else + @plugin_path = File.join(Redmine::Configuration['plugins_path'], plugin_name) + end + puts @plugin_path end def copy_templates diff --git a/lib/generators/redmine_plugin_controller/redmine_plugin_controller_generator.rb b/lib/generators/redmine_plugin_controller/redmine_plugin_controller_generator.rb index 8351ce6..231b688 100644 --- a/lib/generators/redmine_plugin_controller/redmine_plugin_controller_generator.rb +++ b/lib/generators/redmine_plugin_controller/redmine_plugin_controller_generator.rb @@ -9,7 +9,11 @@ class RedminePluginControllerGenerator < Rails::Generators::NamedBase super @plugin_name = file_name.underscore @plugin_pretty_name = plugin_name.titleize - @plugin_path = "plugins/#{plugin_name}" + if Redmine::Configuration['plugins_path'].nil? + @plugin_path = File.join(Rails.root, 'plugins', plugin_name) + else + @plugin_path = File.join(Redmine::Configuration['plugins_path'], plugin_name) + end @controller_class = controller.camelize end diff --git a/lib/generators/redmine_plugin_model/redmine_plugin_model_generator.rb b/lib/generators/redmine_plugin_model/redmine_plugin_model_generator.rb index 2e5f031..bea9b68 100644 --- a/lib/generators/redmine_plugin_model/redmine_plugin_model_generator.rb +++ b/lib/generators/redmine_plugin_model/redmine_plugin_model_generator.rb @@ -14,7 +14,11 @@ class RedminePluginModelGenerator < Rails::Generators::NamedBase super @plugin_name = file_name.underscore @plugin_pretty_name = plugin_name.titleize - @plugin_path = "plugins/#{plugin_name}" + if Redmine::Configuration['plugins_path'].nil? + @plugin_path = File.join(Rails.root, 'plugins', plugin_name) + else + @plugin_path = File.join(Redmine::Configuration['plugins_path'], plugin_name) + end @model_class = model.camelize @table_name = @model_class.tableize @migration_filename = "create_#{@table_name}" diff --git a/lib/redmine/plugin.rb b/lib/redmine/plugin.rb index 503c3db..9ab364b 100644 --- a/lib/redmine/plugin.rb +++ b/lib/redmine/plugin.rb @@ -44,7 +44,7 @@ module Redmine #:nodoc: # When rendered, the plugin settings value is available as the local variable +settings+ class Plugin cattr_accessor :directory - self.directory = File.join(Rails.root, 'plugins') + self.directory = Redmine::Configuration['plugins_path'] || File.join(Rails.root, 'plugins') cattr_accessor :public_directory self.public_directory = File.join(Rails.root, 'public', 'plugin_assets')