I'm trying to use Cap2 to deploy non-Rails applications and am running
into probably an impedance mismatch.

Capistrano is build to checkout one project/application from SVN (or
whichever SCM) and deploy it onto remote servers. It assumes that this
single checkout/deploy step will cause the entire web application to
be deployed.

In my case, we have 6 difference web apps (each sitting in their own
folders in SVN). For the entire website to be functioning, I need all
6 webapps to be deployed and running. Whenever a new build is rolled
out, I need all 6 webapps to be updated.

I've written a custom task to handle this --

task :checkout do
  get_defaults # initializes the $projects with the list of projects
  deploy.setup
  for project in $projects
    set :repository, "http://agni.cleartrip.com/svn/repos/
#{project[0]}"
    set :application, "#{project[1]}"
    puts "#{application} -- #{repository}"
    deploy.update_code
  end

But with each iteration the same application is being checked out and
deployed! Upon digging deeper into the Capistrano code I found the
culprit:

          def command
            @command ||= case copy_strategy
            when :checkout
              source.checkout(revision, destination)
            when :export
              source.export(revision, destination)
            end
          end

Almost all private helper functions in copy.rb (the strategy which I'm
using) are written in this way. They don't compute commands/variable
values more than once.

Am I barking up the wrong tree? Is there a more elegant way of doing
this in Capistrano?

Saurabh.
--~--~---------~--~----~------------~-------~--~----~
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at http://groups.google.com/group/capistrano
-~----------~----~----~----~------~----~------~--~---

Reply via email to