Jamis, Should you be able to specify multiple roles?
For example, when prompted, I'd like to give a list, like: m1,m2, or [m1,m2], but none of these seem to work? Thanks! On Jan 17, 8:18 am, David Masover <[email protected]> wrote: > Nicer than Proc.new, but I'm not sure it's better than, say, proc or lambda. > That, and I seem to remember "defer" being used somewhere, for something > else, though not in Cap. > > On Fri, Jan 16, 2009 at 4:58 PM, Jamis Buck <[email protected]> wrote: > > > Sorry I wasn't clear. The defer() method is an alias for Proc.new. So > > you'd just do: > > > :roles => defer { Capistrano::CLI.ui.ask(...) } > > > Or, if you prefer: > > > :roles => Proc.new { Capistrano::CLI.ui.ask(...) } > > > Some might say that adding defer() was dumb on my part, but I think it > > reads much nicer than Proc.new. So, choose your poison. :) > > > - Jamis > > > On 1/16/09 3:45 PM, pete wrote: > > > Ok, I know it's possible, but I seem to be messing this up... > > > > Would it be like this? > > > > task :test_task, :roles => defer { Proc.new { Capistrano::CLI.ui.ask > > > ("Please specify ENV: " )} } do > > > run "echo hi" > > > end > > > > On Jan 16, 2:38 pm, Jamis Buck <[email protected]> wrote: > > >> Pete, yes you can pass a Proc object as the value of the :roles option, > > >> and it will get evaluated when the task is considered for execution. The > > >> proc should return an array of role names. > > > >> Capistrano provides a defer() helper to make declaring the procs a bit > > >> easier to read: > > > >> task :generic_task, :roles => defer { compute_role_names_here } do > > >> # ... > > >> end > > > >> - Jamis > > > >> On 1/16/09 1:48 PM, pete wrote: > > > >>> Hello- > > >>> Is it possible to dynamically set roles for a specific task? > > >>> For example, I want to create some generic tasks, along with groups of > > >>> servers I use, and I wan tto be able to execute these commands on > > >>> different groups, without having to duplicate code. > > >>> role :group1, m1, m2, m3 > > >>> role :group2, m4, m5, m6 > > >>> task :generic_task, :roles => [some passed in variable] do > > >>> run "echo hi" > > >>> end > > >>> Is something like this possible? I have tried a couple options, none > > >>> of which worked. > > >>> Thanks! > > --~--~---------~--~----~------------~-------~--~----~ To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/capistrano -~----------~----~----~----~------~----~------~--~---
