summaryrefslogtreecommitdiff
path: root/src/guprecords
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2023-02-26 17:03:49 +0200
committerPaul Buetow <paul@buetow.org>2023-02-26 17:03:49 +0200
commit944e5035b60f09ce68aa66d6b89168cd9151f482 (patch)
treef47a14fcf49fd1a4c1a0ba63741db736e15a7ed8 /src/guprecords
parent7c31ae967dde77be3c734d43d985b279ff172424 (diff)
clean up perl stuff
Diffstat (limited to 'src/guprecords')
-rwxr-xr-xsrc/guprecords181
1 files changed, 0 insertions, 181 deletions
diff --git a/src/guprecords b/src/guprecords
deleted file mode 100755
index 3722470..0000000
--- a/src/guprecords
+++ /dev/null
@@ -1,181 +0,0 @@
-#!/usr/bin/env perl
-
-# guprecords (c) 2014, Paul Buetow
-# E-Mail: guprecords@mx.buetow.org WWW: http://codeberg.org/snonux/guprecords
-
-use strict;
-use warnings;
-use v5.14;
-
-use Getopt::Long;
-use POSIX qw(strftime);
-use Term::ANSIColor;
-
-our $VERSION = 'VERSION_DEVEL';
-our $FLAG = 0;
-our $NOW = time();
-
-our %ARGS = (
- all => 0,
- help => 0,
- nofqdn => 0,
- reverse => 0,
- total => 0,
- nocolor => 0,
- 'oldage=i' => 180,
- 'count=i' => 23,
- 'indir=s' => '.',
-);
-
-our %OPTS = map { $_ => \$ARGS{$_} } keys %ARGS;
-GetOptions %OPTS or die "Error in command line arguments. Try --help";
-
-sub help() {
- say "Ths is guprecords Version $VERSION";
- print "Usage: $0\n";
- say "\t--$_" for sort keys %ARGS;
- say 'Please also consult the guprecords manual page.'
-}
-
-sub uptime($) {
- my $uptime = shift;
- my ($s,$m,$h,undef,undef,$y,undef,$d) = localtime($uptime);
-
- $y -= 70;
- $d += $y * 365;
-
- sprintf "%3dd %02d:%02d:%02d", $d, $h, $m, $s;
-}
-
-sub trimlen($$) {
- my ($string,$len) = @_;
-
- if (length $string > $len) {
- substr($string, 0, ($len-2)).'..';
- } else {
- $string;
- }
-}
-
-sub out(\@;$) {
- my ($records,$show_bt) = @_;
-
- $FLAG = 1;
- my $count = 0;
-
- printf "%3s | %17s | %20s | %13s | %24s\n",
- 'Pos',
- 'System',
- 'Kernel',
- 'Uptime',
- (defined $show_bt ? 'Boot time' : '');
-
- map {
- return if $count++ == $ARGS{'count=i'};
-
- my $name = $ARGS{nofqdn} ? $_->{hostname} : $_->{fqdn};
-
- print color 'bold' if !$ARGS{nocolor} and $_->{is_old};
-
- printf "%3d | %17s | %20s | %13s | %24s\n",
- $count,
- trimlen($name,17),
- trimlen($_->{kernel},20),
- uptime($_->{uptime}),
- (defined $show_bt ? ''.localtime($_->{bootime}) : '');
-
- print color 'reset' if !$ARGS{nocolor} and $_->{is_old};
- }
- do {
- unless ($ARGS{reverse}) {
- sort { $b->{uptime} <=> $a->{uptime} } @$records
- } else {
- sort { $a->{uptime} <=> $b->{uptime} } @$records
- }
- };
-}
-
-sub is_old($) {
- my $time = shift;
- # Count per day
- my $oldage = 86400 * $ARGS{'oldage=i'};
-
- return $NOW - $time < $oldage ? 1 : 0;
-}
-
-sub all() {
- my @records;
-
- for my $file (<$ARGS{'indir=s'}/*.records>) {
- my ($fqdn) = $file =~ m#.*/(.*)\.records#;
- my ($hostname) = $fqdn =~m#([^\.]+)#;
-
- my $uptime_total = 0;
-
- open my $fh, $file or die "$file: $!\n";
- while (<$fh>) {
- chomp;
- my ($uptime,$boot,$kernel) = split ':';
-
- push @records, {
- bootime => $boot,
- fqdn => $fqdn,
- hostname => $hostname,
- kernel => $kernel,
- uptime => $uptime,
- is_old => is_old $uptime + $boot,
- };
-
- }
- close $file;
-
- }
-
- out @records, 'show_bt';
-}
-
-sub total() {
- my @records;
-
- for my $file (<$ARGS{'indir=s'}/*.records>) {
- my ($fqdn) = $file =~ m#.*/(.*)\.records#;
-
- my $uptime_ = 0;
- my $kernel_;
-
- my ($highest, $newest) = (0, 0);
-
- open my $fh, $file or die "$file: $!\n";
- while (<$fh>) {
- chomp;
- my ($uptime,$boot,$kernel) = split ':';
-
- $uptime_ += $uptime;
-
- if ($highest < $uptime) {
- $highest = $uptime;
- $kernel_ = $kernel;
- }
-
- $newest = $uptime + $boot if $newest < $uptime + $boot;
- }
- close $file;
-
- push @records, {
- uptime => $uptime_,
- kernel => $kernel_,
- fqdn => $fqdn,
- is_old => is_old $newest,
- };
-
- }
-
- out @records;
-}
-
-help if $ARGS{help};
-all if $ARGS{all};
-total if $ARGS{total};
-
-help unless $FLAG;
-