rendered paste bodyuse strict;
use warnings;
use vars qw($VERSION %IRSSI);
use Irssi;
$VERSION = '1.00';
%IRSSI = (
authors => 'QwErTz',
contact => 'qwertz@videotron.ca',
name => 'Sysinfo OS X',
);
use Irssi qw(command_bind signal_add);
sub subSysinfo {
## Global Variables Define ##
my ($data, $server, $witem) = @_;
## Long Variables Define ##
my ($cpu_type_long, $kernel_release_long, $uptime_long, $mem_total_long, $mem_used_long, $disk_long) = @_;
## Counter Variables
my ($disk_total_counter, $disk_used_counter, $measurements) = @_;
my (@measurements) = @_;
## Final Variables Define ##
my ($kernel, $kernel_release, $uptime, $cpu_type, $mem_total, $mem_used, $mem, $disk_total, $disk_used, $disk) = @_;
## Long Variables ##
$uptime_long = `uptime`;
$cpu_type_long = `sysctl machdep.cpu.brand_string`;
$kernel_release_long = `sysctl kern.osrelease`;
$mem_total_long = `sysctl hw.physmem`;
$mem_used_long = `sysctl hw.usermem`;
$disk_long=`df -lm | awk 'BEGIN {getline; while (getline temp > 0) { split(temp,a," "); total1 += a[4]; total2 += a[2] } }END {print total1,total2}'`;
## Final Variables ##
# CPU
$cpu_type = $cpu_type_long;
$cpu_type = substr($cpu_type, 26);
chomp $cpu_type;
$cpu_type = "[CPU] " . $cpu_type;
$cpu_type =~ s/(\s){2,}/ /;
# Kernel
$kernel_release = $kernel_release_long;
$kernel_release = substr($kernel_release, 17);
chomp $kernel_release;
$kernel = " [Kernel] Darwin " . $kernel_release;
# Memory Usage Used/Total
$mem_total = $mem_total_long;
$mem_total = substr($mem_total, 0, -1);
$mem_total = substr($mem_total, 12);
$mem_total = $mem_total / 1024 / 1024;
$mem_total = sprintf("%.0f", $mem_total);
$mem_used = $mem_used_long;
$mem_used = substr($mem_used, 0, -1);
$mem_used = substr($mem_used, 12);
$mem_used = $mem_used / 1024 / 1024;
$mem_used = sprintf("%.0f", $mem_used);
$mem = " [RAM] " . $mem_used . "MB/" . $mem_total . "MB";
# Disk Usage Used/Total
($disk_used, $disk_total) = split(/ /,$disk_long);
@measurements = ['MB', 'GB', 'TB', 'YB'];
while($disk_used >= 1024)
{
$disk_used_counter++;
$disk_used /= 1024;
}
$disk_used = sprintf("%.2f",$disk_used);
while($disk_total >= 1024)
{
$disk_total_counter++;
$disk_total /= 1024;
}
$disk_total = sprintf("%.2f",$disk_total);
$disk = " [Disk] " . $disk_used . $measurements[$disk_used_counter] . "/" . $disk_total . $measurements[$disk_total_counter];
#$disk_used = $disk_used / 1024;
#$disk_used = sprintf("%.2f", $disk_used);
#$disk_total = $disk_total / 1024;
#$disk_total = sprintf("%.2f", $disk_total);
#$disk = " [Disk] " . $disk_used . "GB/" . $disk_total . "GB";
## Irssi Commands ##
$server->command("/msg #tester ". $cpu_type . $kernel . $mem . $disk);
}
command_bind sysinfo => \&subSysinfo;