You are on page 1of 3

#!

/usr/bin/perl

# To load, in irssi type '/script load irssisysinfo.pl' (make sure it's saved as a
.pl file).
# When connected to a server type '/cmds' and you'll have a list of available
commands.
# Make sure this script is in '~/.irssi/script' folder or else irssi won't know
where it is.
# Created by Franc, Perl 5.

use strict;
use Irssi;

sub vcard {

my ($a, $s, $m) = @_;


my $h = `lspci | grep VGA`;

if(!$s) { not_connected(); return; }


elsif ( $m && ($m->{type} eq "CHANNEL" || $m->{type} eq "QUERY")) { $m-
>command("MSG ".$m->{name}." $h"); }
else{ no_nick(); }
}

sub audio {

my($a, $s, $m) = @_;


my $h = `lspci | grep Audio`;

if(!$s) { not_connected(); return; }


elsif ($m && ($m->{type} eq "CHANNEL" || $m->{type} eq "QUERY")) { $m-
>command("MSG ".$m->{name}." $h"); }
else{ no_nick(); }
}

sub nic {

my($a, $s, $m) = @_;


my $h = `lspci | grep Network`;

if(!$s) { not_connected(); return; }


elsif ($m && ($m->{type} eq "CHANNEL" || $m->{type} eq "QUERY")) { $m-
>command("MSG ".$m->{name}." $h"); }
else{ no_nick(); }
}

sub ethernet {

my($a, $s, $m) = @_;


my $h = `lspci | grep Ethernet`;

if(!$s) { not_connected(); return; }


elsif ($m && ($m->{type} eq "CHANNEL" || $m->{type} eq "QUERY")) { $m-
>command("MSG ".$m->{name}." $h"); }
else{ no_nick(); }
}

sub uname {

my($a, $s, $m) = @_;


my $h = `uname -a`;

if(!$s) { not_connected(); return; }


elsif ($m && ($m->{type} eq "CHANNEL" || $m->{type} eq "QUERY")) { $m-
>command("MSG ".$m->{name}." $h"); }
else{ no_nick(); }
}

sub distro {

my($a, $s, $m) = @_;


my $h = `head -n1 /etc/issue`;

if(!$s) { not_connected(); return; }


elsif ($m && ($m->{type} eq "CHANNEL" || $m->{type} eq "QUERY")) { $m-
>command("MSG ".$m->{name}." $h"); }
else{ no_nick(); }
}

sub uptime {

my($a, $s, $m) = @_;


my $h = `uptime`;

if(!$s) { not_connected(); return; }


elsif ($m && ($m->{type} eq "CHANNEL" || $m->{type} eq "QUERY")) { $m-
>command("MSG ".$m->{name}." $h"); }
else{ no_nick(); }
}

sub free {

my($a, $s, $m) = @_;


my $h = `free -m | grep Mem`;

if(!$s) { not_connected(); return; }


elsif ($m && ($m->{type} eq "CHANNEL" || $m->{type} eq "QUERY")) {
if($h =~ /^Mem:(\s+)(\d+)(\s+)(\d+)(\s+)(\d+)(.*)/){ $m->command("MSG
".$m->{name}." Total: $2(MB), Used: $4(MB), Free: $6(MB)"); }
else{ no_nick(); }
}
}

sub runlevel {

my($a, $s, $m) = @_;


my $h = `runlevel`;

if(!$s) { not_connected(); return; }


elsif ($m && ($m->{type} eq "CHANNEL" || $m->{type} eq "QUERY")) { $m-
>command("MSG ".$m->{name}." Runlevel: $h"); }
else{ no_nick(); }
}

sub not_connected { Irssi::print "Try again when connected to server."; }


sub no_nick { Irssi::print "Nick not given.."; }
sub commands { Irssi::print "/audio /vidcard /nic /ethernet /uname /distro
/uptime /freemem /cmds /runlvl"; }

Irssi::command_bind('audio', 'audio');
Irssi::command_bind('vidcard', 'vcard');
Irssi::command_bind('nic', 'nic');
Irssi::command_bind('ethernet', 'ethernet');
Irssi::command_bind('uname', 'uname');
Irssi::command_bind('distro', 'distro');
Irssi::command_bind('uptime', 'uptime');
Irssi::command_bind('freemem', 'free');
Irssi::command_bind('cmds', 'commands');
Irssi::command_bind('runlvl', 'runlevel');

You might also like