summaryrefslogtreecommitdiffstats
path: root/lib/puppet/util/settings/file_setting.rb
diff options
context:
space:
mode:
Diffstat (limited to 'lib/puppet/util/settings/file_setting.rb')
-rw-r--r--lib/puppet/util/settings/file_setting.rb196
1 files changed, 98 insertions, 98 deletions
diff --git a/lib/puppet/util/settings/file_setting.rb b/lib/puppet/util/settings/file_setting.rb
index ee17d7ddc..edbab1d0c 100644
--- a/lib/puppet/util/settings/file_setting.rb
+++ b/lib/puppet/util/settings/file_setting.rb
@@ -2,122 +2,122 @@ require 'puppet/util/settings/setting'
# A file.
class Puppet::Util::Settings::FileSetting < Puppet::Util::Settings::Setting
- AllowedOwners = %w{root service}
- AllowedGroups = %w{root service}
+ AllowedOwners = %w{root service}
+ AllowedGroups = %w{root service}
- class SettingError < StandardError; end
+ class SettingError < StandardError; end
- attr_accessor :mode, :create
+ attr_accessor :mode, :create
- # Should we create files, rather than just directories?
- def create_files?
- create
- end
+ # Should we create files, rather than just directories?
+ def create_files?
+ create
+ end
- def group=(value)
- unless AllowedGroups.include?(value)
- identifying_fields = [desc,name,default].compact.join(': ')
- raise SettingError, "Internal error: The :group setting for #{identifying_fields} must be 'service', not '#{value}'"
- end
- @group = value
+ def group=(value)
+ unless AllowedGroups.include?(value)
+ identifying_fields = [desc,name,default].compact.join(': ')
+ raise SettingError, "Internal error: The :group setting for #{identifying_fields} must be 'service', not '#{value}'"
end
-
- def group
- return unless @group
- @settings[:group]
+ @group = value
+ end
+
+ def group
+ return unless @group
+ @settings[:group]
+ end
+
+ def owner=(value)
+ unless AllowedOwners.include?(value)
+ identifying_fields = [desc,name,default].compact.join(': ')
+ raise SettingError, "Internal error: The :owner setting for #{identifying_fields} must be either 'root' or 'service', not '#{value}'"
end
-
- def owner=(value)
- unless AllowedOwners.include?(value)
- identifying_fields = [desc,name,default].compact.join(': ')
- raise SettingError, "Internal error: The :owner setting for #{identifying_fields} must be either 'root' or 'service', not '#{value}'"
- end
- @owner = value
+ @owner = value
+ end
+
+ def owner
+ return unless @owner
+ return "root" if @owner == "root" or ! use_service_user?
+ @settings[:user]
+ end
+
+ def use_service_user?
+ @settings[:mkusers] or @settings.service_user_available?
+ end
+
+ # Set the type appropriately. Yep, a hack. This supports either naming
+ # the variable 'dir', or adding a slash at the end.
+ def munge(value)
+ # If it's not a fully qualified path...
+ if value.is_a?(String) and value !~ /^\$/ and value != 'false'
+ # Make it one
+ value = File.expand_path(value)
end
-
- def owner
- return unless @owner
- return "root" if @owner == "root" or ! use_service_user?
- @settings[:user]
+ if value.to_s =~ /\/$/
+ @type = :directory
+ return value.sub(/\/$/, '')
end
-
- def use_service_user?
- @settings[:mkusers] or @settings.service_user_available?
+ value
+ end
+
+ # Return the appropriate type.
+ def type
+ value = @settings.value(self.name)
+ if @name.to_s =~ /dir/
+ return :directory
+ elsif value.to_s =~ /\/$/
+ return :directory
+ elsif value.is_a? String
+ return :file
+ else
+ return nil
end
+ end
- # Set the type appropriately. Yep, a hack. This supports either naming
- # the variable 'dir', or adding a slash at the end.
- def munge(value)
- # If it's not a fully qualified path...
- if value.is_a?(String) and value !~ /^\$/ and value != 'false'
- # Make it one
- value = File.expand_path(value)
- end
- if value.to_s =~ /\/$/
- @type = :directory
- return value.sub(/\/$/, '')
- end
- value
- end
+ # Turn our setting thing into a Puppet::Resource instance.
+ def to_resource
+ return nil unless type = self.type
- # Return the appropriate type.
- def type
- value = @settings.value(self.name)
- if @name.to_s =~ /dir/
- return :directory
- elsif value.to_s =~ /\/$/
- return :directory
- elsif value.is_a? String
- return :file
- else
- return nil
- end
- end
+ path = self.value
- # Turn our setting thing into a Puppet::Resource instance.
- def to_resource
- return nil unless type = self.type
+ return nil unless path.is_a?(String)
- path = self.value
+ # Make sure the paths are fully qualified.
+ path = File.expand_path(path)
- return nil unless path.is_a?(String)
+ return nil unless type == :directory or create_files? or File.exist?(path)
+ return nil if path =~ /^\/dev/
- # Make sure the paths are fully qualified.
- path = File.expand_path(path)
+ resource = Puppet::Resource.new(:file, path)
- return nil unless type == :directory or create_files? or File.exist?(path)
- return nil if path =~ /^\/dev/
+ if Puppet[:manage_internal_file_permissions]
+ resource[:mode] = self.mode if self.mode
- resource = Puppet::Resource.new(:file, path)
-
- if Puppet[:manage_internal_file_permissions]
- resource[:mode] = self.mode if self.mode
-
- if Puppet.features.root?
- resource[:owner] = self.owner if self.owner
- resource[:group] = self.group if self.group
- end
- end
-
- resource[:ensure] = type
- resource[:loglevel] = :debug
- resource[:backup] = false
-
- resource.tag(self.section, self.name, "settings")
-
- resource
+ if Puppet.features.root?
+ resource[:owner] = self.owner if self.owner
+ resource[:group] = self.group if self.group
+ end
end
- # Make sure any provided variables look up to something.
- def validate(value)
- return true unless value.is_a? String
- value.scan(/\$(\w+)/) { |name|
- name = $1
- unless @settings.include?(name)
- raise ArgumentError,
- "Settings parameter '#{name}' is undefined"
- end
- }
- end
+ resource[:ensure] = type
+ resource[:loglevel] = :debug
+ resource[:backup] = false
+
+ resource.tag(self.section, self.name, "settings")
+
+ resource
+ end
+
+ # Make sure any provided variables look up to something.
+ def validate(value)
+ return true unless value.is_a? String
+ value.scan(/\$(\w+)/) { |name|
+ name = $1
+ unless @settings.include?(name)
+ raise ArgumentError,
+ "Settings parameter '#{name}' is undefined"
+ end
+ }
+ end
end