is there a way to not repeat installing plugins?

Check out the GemsOnRails project. I included it in my list of 5 Gems
you might not know about but should:

This assumes of course that the plugin is available as a gem. If not,
poke the author and tell them they should make it a gem. :slight_smile:


I think the OP asked a slightly different question (although this is a very valuable answer). The way I read the question it was, "say I always start out with the same set of base plugins -- say engines, login_engine, user_engine, exception_notification, ez_where. Does anyone know an elegant way to press a magic button to achieve a base plugin configuration much as 'rails foo' achieves a base Rails app configuration.

Just my interpretation of the question.


use svn[1] to install the plugin - then when you install, the svn checkout will extract the external references to your plugin directory.

script/plugin install -X can be used to setup the svn externals reference, or you can use "svn propedit svn:externals vendor/plugin" to define all the external refs. The benefit you have here is you can 'freeze' to specific version of a plugin - which comes in real handy when you're mirroring production in your tests.


General Partner
The nNovation Group inc.

I think something more along these lines would be a start toward what the OP was looking for:

# Yikes! Hard coded stuff. Put your stock plugins here
     "exception_notification" => " rails/plugins/exception_notification/",
     "acts_as_authenticated" => " projects/plugins/acts_as_authenticated",
     "rspec" => "svn:// tags/REL_0_7_4/vendor/rspec_on_rails/vendor/plugins/rspec"
}.each_pair do |plugin, repos|
     force = ''
     if File.exist?("vendor/plugins/#{plugin}")
         puts "Plugin #{plugin} appears to be installed already. Force? [yN]"
         next if gets.downcase != 'y'
         force = ' --force'
     system("script/plugin install #{repos} #{plugin}#{force}")
# ------------------------------------------------------

Clearly, this was a quick hack, but it will install a base set of plugins from their repositories. TODOs would be to install them as svn externals and/or add to repository.


Correction. Line 9 should read:

         next if gets.downcase.strip != 'y'



I like it. How about making it so the plugin list is a simple text
file somewhere and then making a Rake task which will handle the


Ok, there's a rake task on:


There is a replacement for the plugin script called Rapt:

Rapt has the concept of a "plugin pack", that is a set of plugins you
can install in one swell foop.

I've never used this functionality
might be what you're after if that's your preferred approach.