class Aruba::Platforms::DetermineDiskUsage
@private
Determinate disk usage
def call(paths)
def call(paths) size = paths.flatten.sum { |path| minimum_disk_space_used path } FileSize.new(size) end
def minimum_disk_space_used(path)
-
(Integer)-
def minimum_disk_space_used(path) # TODO: replace Aruba.config.physical_block_size # with something like Aruba.config.fs_allocation_unit dev_bsize = Aruba.config.physical_block_size stat = File::Stat.new(path.to_s) blocks = stat.blocks return (blocks * dev_bsize) if blocks typical_fs_unit = 4096 typical_dev_bsize = 512 # google dev_bsize for more info block_multiplier = typical_fs_unit / typical_dev_bsize fs_unit_size = dev_bsize * block_multiplier fs_units = (stat.size + fs_unit_size - 1) / fs_unit_size fs_units = 1 if fs_units.zero? fs_units * fs_unit_size end