]> git.donarmstrong.com Git - infobot.git/blobdiff - src/Modules/Kernel.pl
* Accidentally left in a debug output
[infobot.git] / src / Modules / Kernel.pl
index 34cca2fabb1cc4c38a1af87f1fe1686cb54a5d6a..52c5c108ea5aebff69d1dd819e4bee285d4a9341 100644 (file)
@@ -7,63 +7,34 @@
 
 package Kernel;
 
-use IO::Socket;
-use strict;
-
-### TODO: change this to http instead of finger?
-my $server     = "ftp.kernel.org";
-my $port       =  79;
-my $proto      = getprotobyname('tcp');
-
-###local $SIG{ALRM} = sub { die "alarm\n" };
-
 sub kernelGetInfo {
-###    return unless &::loadPerlModule("IO::Socket");
-
-    my $socket    = new IO::Socket;
-
-    socket($socket, PF_INET, SOCK_STREAM, $proto) or return "error: socket: $!";
-    eval {
-       alarm 15;
-       connect($socket, sockaddr_in($port, inet_aton($server))) or return "error: connect: $!";
-       alarm 0;
-    };
-
-    my @retval;
-
-    if ($@ && $@ ne "alarm\n") {               # failed.
-       return;
-    }
-
-    $socket->autoflush(1);     # required.
-
-    print $socket "\n";
-    while (<$socket>) {
-       chop;
-
-       s/\t//g;
-       s/\s$//;
-       s/\s+/ /g;
-
-       next if ($_ eq "");
-
-       push(@retval, $_);
-    }
-    close $socket;
-
-    @retval;
+    return &::getURL("http://www.kernel.org/kdist/finger_banner");
 }
 
 sub Kernel {
-    my @now = &kernelGetInfo();
-    if (!scalar @now) {
-       &::msg($::who, "failed.");
-       return;
+    my $retval = 'Linux kernel versions';
+    my @now    = &kernelGetInfo();
+    if ( !scalar @now ) {
+        &::msg( $::who, "failed." );
+        return;
     }
 
-    foreach (@now) {
-       &::msg($::who, $_);
+    foreach $line (@now) {
+        $line =~ s/The latest //;
+        $line =~ s/version //;
+        $line =~ s/of //;
+        $line =~ s/the //;
+        $line =~ s/Linux //;
+        $line =~ s/kernel //;
+        $line =~ s/tree //;
+        $line =~ s/ for stable//;
+        $line =~ s/ to stable kernels//;
+        $line =~ s/ for 2.4//;
+        $line =~ s/ for 2.2//;
+        $line =~ s/ is: */: /;
+        $retval .= ', ' . $line;
     }
+    &::performStrictReply($retval);
 }
 
 sub kernelAnnounce {
@@ -71,48 +42,49 @@ sub kernelAnnounce {
     my @now  = &kernelGetInfo();
     my @old;
 
-    if (!scalar @now) {
-       &::DEBUG("kA: failure to retrieve.");
-       return;
+    if ( !scalar @now ) {
+        &::DEBUG('kA: failure to retrieve.');
+        return;
     }
 
-    if (! -f $file) {
-       open(OUT, ">$file");
-       foreach (@now) {
-           print OUT "$_\n";
-       }
-       close OUT;
+    if ( !-f $file ) {
+        open( OUT, ">$file" );
+        foreach (@now) {
+            print OUT "$_\n";
+        }
+        close OUT;
 
-       return;
-    } else {
-       open(IN, $file);
-       while (<IN>) {
-           chop;
-           push(@old,$_);
-       }
-       close IN;
+        return;
+    }
+    else {
+        open( IN, $file );
+        while (<IN>) {
+            chop;
+            push( @old, $_ );
+        }
+        close IN;
     }
 
     my @new;
-    for(my $i=0; $i<scalar(@old); $i++) {
-       next if ($old[$i] eq $now[$i]);
-       push(@new, $now[$i]);
+    for ( my $i = 0 ; $i < scalar(@old) ; $i++ ) {
+        next if ( $old[$i] eq $now[$i] );
+        push( @new, $now[$i] );
     }
 
-    if (scalar @now != scalar @old) {
-       &::DEBUG("kA: scalar mismatch; removing and exiting.");
-       unlink $file;
-       return;
+    if ( scalar @now != scalar @old ) {
+        &::DEBUG("kA: scalar mismatch; removing and exiting.");
+        unlink $file;
+        return;
     }
 
-    if (!scalar @new) {
-       &::DEBUG("kA: no new kernels.");
-       return;
+    if ( !scalar @new ) {
+        &::DEBUG("kA: no new kernels.");
+        return;
     }
 
-    open(OUT, ">$file");
+    open( OUT, ">$file" );
     foreach (@now) {
-       print OUT "$_\n";
+        print OUT "$_\n";
     }
     close OUT;
 
@@ -120,3 +92,5 @@ sub kernelAnnounce {
 }
 
 1;
+
+# vim:ts=4:sw=4:expandtab:tw=80