# TODO: Write documentation for `Hwinfo`
|
|
require "hardware"
|
|
require "./hwinfo/*"
|
|
module Hwinfo
|
|
include Memcalc
|
|
extend self
|
|
memory = Hardware::Memory.new
|
|
cpu = Hardware::CPU.new
|
|
|
|
puts "Host Information"
|
|
puts "Hostname: #{System.hostname}"
|
|
puts "Uptime: #{uptime.first.seconds}"
|
|
puts "Idle Time: #{uptime[1].seconds}"
|
|
puts "Kernel Version: #{kernel[2]}"
|
|
puts ""
|
|
|
|
puts "CPU Information"
|
|
puts "Cores: #{System.cpu_count}"
|
|
puts "CPU Usage: #{cpu.usage.to_i}%"
|
|
puts ""
|
|
|
|
puts "Memory Information"
|
|
puts "Used: #{gb(memory.used).round(2)}GB"
|
|
puts "Available: #{gb(memory.available).round(2)}GB"
|
|
puts "Total: #{gb(memory.total).round(2)}GB"
|
|
private def self.read_file(filename : String)
|
|
|
|
File.read(File.join("/proc", filename)).strip
|
|
|
|
end
|
|
def self.uptime
|
|
|
|
uptimes = read_file("uptime").split(/\s+/).map(&.to_f64)
|
|
|
|
end
|
|
def self.kernel
|
|
|
|
kernel = read_file("version").split(/\s+/)
|
|
|
|
end
|
|
end
|