|
4 | 4 | property :entry, String, desired_state: true |
5 | 5 | property :value, [TrueClass, FalseClass, String, Integer, Float], desired_state: true |
6 | 6 | property :encoding, String, desired_state: true, default: 'binary' |
| 7 | +property :owner, String, desired_state: true, default: 'root' |
| 8 | +property :group, String, desired_state: true, default: 'wheel' |
| 9 | +property :mode, [String, Integer] |
7 | 10 |
|
8 | 11 | load_current_value do |desired| |
9 | 12 | current_value_does_not_exist! unless ::File.exist? desired.path |
|
14 | 17 |
|
15 | 18 | file_type_cmd = shell_out '/usr/bin/file', '--brief', '--mime-encoding', '--preserve-date', desired.path |
16 | 19 | encoding file_type_cmd.stdout.chomp |
| 20 | + |
| 21 | + file_owner_cmd = shell_out('/usr/bin/stat', '-f', '%Su', desired.path) |
| 22 | + owner file_owner_cmd.stdout.chomp |
| 23 | + |
| 24 | + file_group_cmd = shell_out('/usr/bin/stat', '-f', '%Sg', desired.path) |
| 25 | + group file_group_cmd.stdout.chomp |
17 | 26 | end |
18 | 27 |
|
19 | 28 | action :set do |
20 | 29 | converge_if_changed :path do |
21 | 30 | converge_by "create new plist: '#{new_resource.path}'" do |
22 | 31 | file new_resource.path do |
23 | | - content <<-EOF |
24 | | -<?xml version="1.0" encoding="UTF-8"?> |
25 | | -<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> |
26 | | -<plist version="1.0"> |
27 | | -<dict> |
28 | | -</dict> |
29 | | -</plist> |
30 | | -EOF |
| 32 | + empty_plist = {}.to_plist |
| 33 | + content empty_plist |
| 34 | + owner new_resource.owner |
| 35 | + group new_resource.group |
| 36 | + mode new_resource.mode if property_is_set?(:mode) |
31 | 37 | end |
32 | 38 | end |
33 | 39 | end |
|
60 | 66 | end |
61 | 67 | end |
62 | 68 | end |
| 69 | + |
| 70 | + converge_if_changed :owner do |
| 71 | + converge_by "update owner to #{new_resource.owner}" do |
| 72 | + file new_resource.path do |
| 73 | + owner new_resource.owner |
| 74 | + end |
| 75 | + end |
| 76 | + end |
| 77 | + |
| 78 | + converge_if_changed :group do |
| 79 | + converge_by "update group to #{new_resource.group}" do |
| 80 | + file new_resource.path do |
| 81 | + group new_resource.group |
| 82 | + end |
| 83 | + end |
| 84 | + end |
63 | 85 | end |
0 commit comments