There's not really a special syntax for delayed evaluation of roles, but you can programmatically set roles in tasks:
task :set_roles do servers = something_that_returns_an_array_of_server_names role :app, *servers end Note that because a task is run for all matching servers in parallel, the question "can I query what server the task is being run on right now" doesn't really make sense. However, if you need to substitute the server name in a command, you can do (e.g.): run "echo $CAPISTRANO:HOST$" That would echo the name of the current host to the screen. That only works inside of the command that you pass to run or sudo, though, because run/sudo substitute that placeholder text with the server name immediately before sending the command to the corresponding server. If you want to run a command on only a single host at a time, you can pass the :hosts key to run/sudo: run "this is on foo.bar.com", :hosts => "foo.bar.com" run "this is on baz.bang.com", :hosts => "baz.bang.com" Note that you lose the parallelization this way, since the first run must finish before the second one can start. That may not matter to you. - Jamis On Jun 13, 2007, at 3:59 PM, hemant wrote: > > Hi, > > Basically for some of my deployment machines, I have entirely > different mongrel_cluster.conf and for rest of them its the same. > > So basically when cap is using mongrel_cluster.conf to restart my > mongrels on those machines, I want cap to pick different cluster > config file. > > Plain vanilla setup has: > > set :mongrel_conf, "#{current_path}/config/mongrel_cluster.yml" > > So on every machine, it would look for mongrel_cluster.yml file. Now, > for some machines I want cap to use > #{current_path}/config/mongrel_cluster_www4.yml. > > I saw delayed evaluation of variables, but wasn't sure, how can i turn > that facility to my evil purposes. > > Also, if somehow within a task, > > task :restart, :roles => :app do > # app was an array, and If I can get for which machine currently > this task is executed > # then I should be able to pull this trick. > end > > > -- > gnufied > ----------- > There was only one Road; that it was like a great river: its springs > were at every doorstep, and every path was its tributary. > http://people.inxsasia.com/hemant > > > --~--~---------~--~----~------------~-------~--~----~ To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/capistrano -~----------~----~----~----~------~----~------~--~---