diff --git a/lib/resources/passwd.rb b/lib/resources/passwd.rb index 328c20d56..6c6009cb7 100644 --- a/lib/resources/passwd.rb +++ b/lib/resources/passwd.rb @@ -23,9 +23,13 @@ # its(:count) { should eq 1 } # end +require 'utils/parser' + class Passwd < Vulcano.resource(1) name 'passwd' + include ContentParser + attr_reader :uid attr_reader :parsed diff --git a/lib/utils/parser.rb b/lib/utils/parser.rb new file mode 100644 index 000000000..d1e9e73be --- /dev/null +++ b/lib/utils/parser.rb @@ -0,0 +1,24 @@ +# encoding: utf-8 + +module ContentParser + # parse etc/passwd file + def parse_passwd(content) + content.split("\n").map do |line| + parse_passwd_line(line) + end + end + + # parse a etc/passwd line + def parse_passwd_line(line) + x = line.split(':') + { + 'name' => x.at(0), + 'password' => x.at(1), + 'uid' => x.at(2), + 'gid' => x.at(3), + 'desc' => x.at(4), + 'home' => x.at(5), + 'shell' => x.at(6), + } + end +end