class ProviderMetadata
Attributes
base[R]
Public Class Methods
new(path, box_basename)
click to toggle source
# File lib/bento/providermetadata.rb, line 7 def initialize(path, box_basename) @base = File.join(path, box_basename) end
Public Instance Methods
read()
click to toggle source
# File lib/bento/providermetadata.rb, line 11 def read Dir.glob("#{base}.*.box").map do |file| { name: provider_from_file(file), version: version(provider_from_file(file)), file: "#{File.basename(file)}", checksum_type: "sha256", checksum: shasum(file), size: "#{size_in_mb(file)} MB", } end end
Private Instance Methods
provider_from_file(file)
click to toggle source
# File lib/bento/providermetadata.rb, line 28 def provider_from_file(file) provider = file.sub(/^.*\.([^.]+)\.box$/, '\1') if provider == "vmware" "vmware_desktop" else provider end end
shasum(file)
click to toggle source
# File lib/bento/providermetadata.rb, line 37 def shasum(file) Digest::SHA256.file(file).hexdigest end
size_in_mb(file)
click to toggle source
# File lib/bento/providermetadata.rb, line 41 def size_in_mb(file) size = File.size(file) size_mb = size / MEGABYTE size_mb.ceil.to_s end
ver_parallels()
click to toggle source
# File lib/bento/providermetadata.rb, line 72 def ver_parallels raise "Platform is not macOS / OS X, exiting..." unless os_x? cmd = Mixlib::ShellOut.new("prlctl --version") cmd.run_command cmd.stdout.split(" ")[2] end
ver_vbox()
click to toggle source
# File lib/bento/providermetadata.rb, line 79 def ver_vbox cmd = Mixlib::ShellOut.new("VBoxManage --version") cmd.run_command cmd.stdout.split("r")[0] end
ver_vmware()
click to toggle source
# File lib/bento/providermetadata.rb, line 58 def ver_vmware if os_x? path = File.join('/Applications/VMware\ Fusion.app/Contents/Library') fusion_cmd = File.join(path, "vmware-vmx -v") cmd = Mixlib::ShellOut.new(fusion_cmd) cmd.run_command cmd.stderr.split(" ")[5] else cmd = Mixlib::ShellOut.new("vmware --version") cmd.run_command cmd.stdout.split(" ")[2] end end
version(provider)
click to toggle source
# File lib/bento/providermetadata.rb, line 47 def version(provider) case provider when /vmware/ ver_vmware when /virtualbox/ ver_vbox when /parallels/ ver_parallels end end