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

Reply via email to