lib/hackmac/disks.rb
require 'hackmac/plist' module Hackmac class DiskInfo include Hackmac::Plist def initialize(disk:) @disk = disk plist *(%w[ diskutil info -plist ] << disk) end attr_reader :disk end class Disks include Hackmac::Plist def initialize(limiter: nil, device: nil) plist *(%w[ diskutil list -plist ] + [ limiter, device ].compact) end end class ContainerDisk < Disks def initialize(disk:, limiter: nil) @disk = disk device = `#{Shellwords.join(%w[ diskutil list ] << disk)}`. lines.grep(/Apple_APFS/).first&.split(/\s+/)&.[](4) super device: device, limiter: limiter end end end