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)

Returns:
  • (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