/usr/share/weechat/perl/kernel.pl is in weechat-scripts 20131007-1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 | # kernel.pl: display the latest stable Linux kernel from kernel.org
#
# Written by Julien Louis <ptitlouis@sysif.net>
# Port to WeeChat 0.3.x: Trashlord <dornenreich666@gmail.com>
# This script is public domain
#
# Recent history:
# v0.4: rewritten to use hook_process()
# To use this script, simply type /kernel without parameters in any buffer.
use warnings;
use strict;
my $script_name = "kernel";
my $author = "ptitlouis";
my $version = "0.4";
my $license = "Public domain";
my $description = "Display the latest stable Linux kernel from kernel.org";
weechat::register($script_name, $author, $version, $license, $description, "", "");
weechat::hook_command("kernel", "Display latest stable kernel from kernel.org", "", "", "", "kernel", "");
sub kernel {
# No parameters are taken here. Timeout for hook process is 10 seconds.
my $hook = weechat::hook_process(kernel_hook_process(), 10000, "kernel_hook_callback", "");
return weechat::WEECHAT_RC_OK;
}
sub kernel_hook_process {
# Use IO::Socket to get a list of kernel versions from finger.kernel.org.
# Yes, Net::Finger exists, but it doesn't work with hook_process.
qq(perl -e 'use IO::Socket; my \$sock = IO::Socket::INET->new(PeerAddr => "finger.kernel.org", PeerPort => 79, Proto => "tcp"); print <\$sock>; close \$sock;');
}
sub kernel_hook_callback {
# Kernel process callback.
my ($buffer, $command, $return_code, $out, $error) = @_;
$buffer = weechat::current_buffer; # Where to print
if ($return_code == weechat::WEECHAT_RC_ERROR) { weechat::print($buffer, "Error with kernel.pl script"); }
if (!$out) {
weechat::print($buffer, "Could not retrieve kernel list from finger.kernel.org");
return weechat::WEECHAT_RC_OK;
}
foreach my $kernel (split(/\n/, $out)) {
# Do a foreach loop on the list of kernels contained in $out
# until the first "The latest stable [...]" is encountered. That's the latest stable version available
if ($kernel =~ /^The latest stable.*:\s*(.+)$/i) {
my $latest_version = $1;
weechat::print($buffer, "The latest stable Linux kernel is $latest_version");
last;
}
}
return weechat::WEECHAT_RC_OK;
}
|