# File lib/puppet/file_serving/configuration/parser.rb, line 57 def changed? @file.changed? end
Parse our configuration file.
# File lib/puppet/file_serving/configuration/parser.rb, line 9 def parse raise("File server configuration #{@file} does not exist") unless Puppet::FileSystem.exist?(@file) raise("Cannot read file server configuration #{@file}") unless FileTest.readable?(@file) @mounts = {} @count = 0 File.open(@file) { |f| mount = nil f.each_line { |line| # Have the count increment at the top, in case we throw exceptions. @count += 1 case line when /^\s*#/; next # skip comments when /^\s*$/; next # skip blank lines when /\[([-\w]+)\]/ mount = newmount($1) when /^\s*(\w+)\s+(.+?)(\s*#.*)?$/ var = $1 value = $2 value.strip! raise(ArgumentError, "Fileserver configuration file does not use '=' as a separator") if value =~ /^=/ case var when "path" path(mount, value) when "allow" allow(mount, value) when "deny" deny(mount, value) else raise ArgumentError.new("Invalid argument '#{var}' in #{@file.filename}, line #{@count}") end else raise ArgumentError.new("Invalid line '#{line.chomp}' at #{@file.filename}, line #{@count}") end } } validate @mounts end
# File lib/puppet/file_serving/configuration/parser.rb, line 53 def initialize(filename) @file = Puppet::Util::WatchedFile.new(filename) end