def set_param(setting, value, parent_dir, opts = {})
fn = File.join(parent_dir, setting)
raise "Config directory does not exist." unless File.exists?(parent_dir)
parent_dir_stat = File.stat(parent_dir)
raise ArgumentError, "Parent directory #{parent_dir} is owned by a system user." unless parent_dir_stat.uid >= 1000
if false == value or value.nil?
File.unlink(fn) if File.exists?(fn)
else
opts = opts.merge({:mode => 0644, :uid => parent_dir_stat.uid, :gid => parent_dir_stat.gid})
safe_open(fn, File::WRONLY|File::CREAT, opts) do |fh|
fh.truncate(0)
fh.write(value.to_s) unless true == value
end
end
value
end