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

Reply via email to