Sha256: d6f249e1daf8686e132b71e2a6bb5c1c1b564dc18f333a7f5c673e6ce001f574

Contents?: true

Size: 1.19 KB

Versions: 7

Compression:

Stored size: 1.19 KB

Contents

# frozen_string_literal: true

module Facter
  module FilesystemHelper
    MOUNT_KEYS = %i[device filesystem path options
                    available available_bytes size
                    size_bytes used used_bytes capacity].freeze
    class << self
      def read_mountpoints
        # TODO: this require must be replaced with "require 'sys/filesystem'" when a new release of
        # djberg96/sys-filesystem gem is available
        require_relative '../../patches/sysfilesystem/sys/statvfs.rb'
        force_utf(Sys::Filesystem.mounts)
      end

      def read_mountpoint_stats(path)
        require 'sys/filesystem'
        Sys::Filesystem.stat(path)
      end

      def compute_capacity(used, total)
        if used == total
          '100%'
        elsif used.positive?
          "#{format('%<value>.2f', value: (used / total.to_f * 100))}%"
        else
          '0%'
        end
      end

      private

      def force_utf(mounts)
        mounts.each do |mount|
          mount.name.force_encoding('UTF-8')
          mount.mount_type.force_encoding('UTF-8')
          mount.mount_point.force_encoding('UTF-8')
          mount.options.force_encoding('UTF-8')
        end
      end
    end
  end
end

Version data entries

7 entries across 7 versions & 1 rubygems

Version Path
facter-4.0.46 lib/facter/resolvers/utils/filesystem_helper.rb
facter-4.0.44 lib/facter/resolvers/utils/filesystem_helper.rb
facter-4.0.43 lib/facter/resolvers/utils/filesystem_helper.rb
facter-4.0.42 lib/facter/resolvers/utils/filesystem_helper.rb
facter-4.0.41 lib/facter/resolvers/utils/filesystem_helper.rb
facter-4.0.40 lib/facter/resolvers/utils/filesystem_helper.rb
facter-4.0.39 lib/facter/resolvers/utils/filesystem_helper.rb