you could use something like that (didnt tested): File.open('/etc/passwd').each do |line| l=line.split(':') Facter.add("home_#{l[0]}") do setcode do l[5] end end end
Cheers, Ohad On Sun, Jan 4, 2009 at 8:55 AM, Robin Lee Powell < rlpow...@digitalkingdom.org> wrote: > > > I'm trying to create a bunch of Facter facts in a loop. The code > inside is evaluated at some weird time, *out of order*, and I don't > know enough Ruby to fix it. The goal is to get access to user > homedirs, because I can't figure out any other way to do that in > Puppet. > > Here's a few tries: > > passwd = IO.readlines('/etc/passwd') > passwd.each do |line| > line =~ /(.*):(.*):(.*):(.*):(.*):(.*):(.*)/ > Facter.add("home_#{$1}") do > setcode do > #{$6} > end > end > end > > This ends up with every home_$user fact having the same homedir > listed as the liste user in /etc/passwd. > > passwd = IO.readlines('/etc/passwd') > > homes = Array.new > index = 0 > > passwd.each do |line| > line =~ /(.*):(.*):(.*):(.*):(.*):(.*):(.*)/ > homes.push $6 > Facter.add("home_#{$1}") do > setcode do > puts "stuff: "+", "+index.to_s+", "+homes[index] > index += 1 > homes[index-1] > end > end > end > > This ends up with home_$user fact having a randomly selected, but > distinct homedir. > > Help? > > -Robin > > -- > They say: "The first AIs will be built by the military as weapons." > And I'm thinking: "Does it even occur to you to try for something > other than the default outcome?" -- http://shorl.com/tydruhedufogre > http://www.digitalkingdom.org/~rlpowell/<http://www.digitalkingdom.org/%7Erlpowell/>*** > http://www.lojban.org/ > > > > --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Puppet Users" group. To post to this group, send email to puppet-users@googlegroups.com To unsubscribe from this group, send email to puppet-users+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/puppet-users?hl=en -~----------~----~----~----~------~----~------~--~---