Any capistrano email recipes?

I'd like to set up capistrano to send an email whenever we do a
deployment. Just start an SMTP session with localhost and shoot off
the email. I have all the code to do that actually, I just don't know
how to run some Ruby code on the deployment server. Anyone know how
to do that, or do you have an email recipe?


Hey Pat-

  Here is a method you can use to run ruby code on the remote server:

def ruby(cmd, options={}, &block)
   temp_name = random_string + ".rb"
     put(cmd, temp_name, :mode => 0700)
     send(run_method, "ruby #{temp_name}", options, &block)
     delete temp_name

# then in a recipe:

task :foo do
    ruby "puts 'hello world!'"
    ruby <<-RUBY
       1.upto(10).do |i|
          pust i

-- Ezra Zygmuntowicz -- Lead Rails Evangelist
-- Engine Yard, Serious Rails Hosting
-- (866) 518-YARD (9273)

Cool, thanks, that worked. Until I needed to load up some stuff from
the rails environment. Decided to use ActionMailer instead of just
doing the SMTP connection. Anyway, I created a cap plugin:

module CapistranoRunner
  def runner(cmd)
    run "#{release_path}/script/runner \"#{cmd}\" -e production"
Capistrano.plugin :runner, CapistranoRunner

and then to use it it looks like

task :after_deploy do
  runner.runner "CapistranoMailer.deliver_deploy(:revision => #{revision})"