forked from jedi4ever/veewee
/
metadata.rb
39 lines (31 loc) · 1.01 KB
/
metadata.rb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
module Fission
class Metadata
require 'cfpropertylist'
attr_accessor :content
def self.delete_vm_info(vm_path)
metadata = new
metadata.load
metadata.delete_vm_restart_document(vm_path)
metadata.delete_vm_favorite_entry(vm_path)
metadata.save
end
def load
raw_data = CFPropertyList::List.new :file => Fission.config.attributes['plist_file']
@content = CFPropertyList.native_types raw_data.value
end
def save
new_content = CFPropertyList::List.new
new_content.value = CFPropertyList.guess @content
new_content.save Fission.config.attributes['plist_file'],
CFPropertyList::List::FORMAT_BINARY
end
def delete_vm_restart_document(vm_path)
if @content.has_key?('PLRestartDocumentPaths')
@content['PLRestartDocumentPaths'].delete_if { |p| p == vm_path }
end
end
def delete_vm_favorite_entry(vm_path)
@content['VMFavoritesListDefaults2'].delete_if { |vm| vm['path'] == vm_path }
end
end
end