Have you tried moving your 'after' call outside of the :uploads namespace?

-Erik


On Thu, Apr 9, 2009 at 3:35 PM, TimBooher <[email protected]> wrote:

>
> I share a common database for my staging and production site. I would
> like to share image uploads as well in
>
> /var/www/my_site/staging/current/public/system
>
> from var/www/my_site:
>
> |-- current -> /var/www/my_site/releases/20090409190216
> |-- releases
> . . .
> |-- shared
> |   |-- log
> |   |-- pids
> |   `-- system
> `-- staging
>    |-- current -> /var/www/my_site/staging/releases/20090409185152
>    |-- releases
>    `-- shared
>
> I want, paperclip to store images from both distributions in /var/www/
> my_site/staging.
>
> Since capistrano already creates a link to #{shared_path}/system, I
> just need to map:
> /var/www/my_site/staging/shared/system  to --> /var/www/my_site/shared/
> system
>
> (http://github.com/jamis/capistrano/blob/
> 2ce539d87c928f41d82f7bfda84e228d3948d82b/lib/capistrano/recipes/
> deploy.rb#L229<http://github.com/jamis/capistrano/blob/%0A2ce539d87c928f41d82f7bfda84e228d3948d82b/lib/capistrano/recipes/%0Adeploy.rb#L229>
> )
>
> So I have the following deploy.rb:
>
> --------------------------------------
> set :stages, %w(staging production)
> set :default_stage, "staging"
> require 'capistrano/ext/multistage'
>
> set :application, "my_site"
> set :repository,  "http://svn.my_site.com/";
> set :deploy_to, "/var/www/#{application}"
> set :user, "passenger"
> set :keep_releases, 3 # (doesn't seem to work)
>
> role :app, "my_server"
> role :web, "my_server"
> role :db,  "my_server", :primary => true
>
> namespace :deploy do
>  desc "Restarting mod_rails with restart.txt"
>  task :restart, :roles => :app, :except => { :no_release => true } do
>    run "touch #{current_path}/tmp/restart.txt"
>  end
>
>  [:start, :stop].each do |t|
>    desc "#{t} task is a no-op with mod_rails"
>    task t, :roles => :app do ; end
>  end
> end
>
> # ==============================
> # Uploads
> # ==============================
>
> namespace :uploads do
>
>  desc <<-EOD
>    [internal] Creates the symlink to uploads shared folder
>    for the most recently deployed version.
>  EOD
>  task :symlink, :except => { :no_release => true } do
>    run "rm -rf #{current_path}/public/system"
>    run "ln -nfs /var/www/my_site/shared/system #{current_path}/public/
> system"
>  end
>
>  after       "deploy:finalize_update", "uploads:symlink"
>
> end
>
> --------------------------------------
>
> I am having trouble getting that callback to work, but am wondering if
> there is not a much easier way to do this (or more robust, am I
> missing something). I thought I could fix things by moving that after
> "deploy:" command to the front of the script, and out of the
> namespace. I also what _nothing_ to happen when I type:
>
> cap production deploy.
>
> Thanks in advance,
>
> Tim
>
>
> >
>

--~--~---------~--~----~------------~-------~--~----~
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