File: merge-manual-vmodl.rb

package info (click to toggle)
ruby-rbvmomi 1.8.2-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 1,756 kB
  • sloc: ruby: 5,590; sh: 36; makefile: 7
file content (32 lines) | stat: -rwxr-xr-x 815 bytes parent folder | download | duplicates (3)
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
#!/usr/bin/env ruby
# Manually merge two versions of vmodl.db

public_vmodl_filename = ARGV[0] or abort "public vmodl filename required"
internal_vmodl_filename = ARGV[1] or abort "internal vmodl filename required"
output_vmodl_filename = ARGV[2] or abort "output vmodl filename required"

public_vmodl = File.open(public_vmodl_filename, 'r') { |io| Marshal.load io }
internal_vmodl = File.open(internal_vmodl_filename, 'r') { |io| Marshal.load io }

db = {}
tn = {}
public_vmodl.each do |k,v|
  unless k == '_typenames'
    db[k] = v
  else
    tn['_typenames'] = v
  end
end

internal_vmodl.each do |k, v|
  unless k == '_typenames'
    db[k] = v unless db[k]
  else
    tn['_typenames'] = tn['_typenames'] + v
  end
end

db['_typenames'] = tn


File.open(output_vmodl_filename, 'w') { |io| Marshal.dump db, io }