diff options
Diffstat (limited to 'sbocheck')
| -rwxr-xr-x | sbocheck | 149 | 
1 files changed, 0 insertions, 149 deletions
| diff --git a/sbocheck b/sbocheck deleted file mode 100755 index bf2ddff..0000000 --- a/sbocheck +++ /dev/null @@ -1,149 +0,0 @@ -#!/usr/bin/perl -# -# vim: ts=4:noet -# -# sbocheck -# script to update the local sbo tree and check for updates -# -# authors: Jacob Pipkin <j@dawnrazor.net> -#          Luke Williams <xocel@iquidus.org> -#          Andreas Guldstrand <andreas.guldstrand@gmail.com> -# maintainer: Slack Coder <slackcoder@server.ky> - -use 5.16.0; -use strict; -use warnings FATAL => 'all'; -use SBO::Lib qw/ _ERR_USAGE update_tree get_available_updates script_error open_fh is_local show_version get_local_outdated_versions /; -use Getopt::Long; -use File::Basename; -use List::Util 'max'; -use Data::Dumper; - -my $self = basename($0); - -sub show_usage { -	print <<"EOF"; -Usage: $self - -Options: -  -h|--help: -    this screen. -  -v|--version: -    version information. - -EOF -	return 1; -} - -my ($help, $vers); - -GetOptions('help|h' => \$help, 'version|v' => \$vers); - -if ($help) { show_usage(); exit 0 } -if ($vers) { show_version(); exit 0 } - -unless ($< == 0) { -	warn "This script requires root privileges.\n"; -	exit -} - -update_tree(); - -# retrieve and format list of available updates -sub get_update_list { -	print "Checking for updated SlackBuilds...\n"; -	my @updates = @{ get_available_updates() }; -	my @outdated = get_local_outdated_versions(); -	return() unless @outdated + @updates; - -	my %updates; -	for my $update (@updates) { -		$updates{$update->{name}} = { -			installed => $update->{installed}, -			available => $update->{update}, -			local => is_local($update->{name}) -		}; -	} -	for my $update (@outdated) { -		my $name = $update->{name}; -		$updates{$name}{installed} = $update->{version}; -		$updates{$name}{sbo} = $update->{orig}; -		$updates{$name}{local} = 1; -	} - -# Output should look like this where the < is aligned to the longest sboname 1.0 string (excepting ones that would then wrap): -# sboname 1.0  <  needs updating (1.1 from overrides) -# sboname 1.0  <  needs updating (1.1 from SBo) -# sboname 1.0  <  needs updating (1.1 from overrides, 1.2 from SBo) -# sboname 1.0  <  override outdated (1.1 from SBo) - -	my $max = 0; -	foreach my $sbo (keys %updates) { -		my $info = $updates{$sbo}; -		my $current = sprintf "%s %s", $sbo, $info->{installed}; - -		my $available = ''; -		if (defined $info->{available} and defined $info->{sbo}) { -			$available = sprintf "needs updating (%s from overrides, %s from SBo)", $info->{available}, $info->{sbo}; -		} -		elsif ($info->{available}) { -			$available = sprintf "needs updating (%s from %s)", $info->{available}, $info->{local} ? "overrides" : "SBo"; -		} -		else { -			$available = sprintf "override outdated (%s from SBo)", $info->{sbo}; -		} -		$info->{name_str} = $current; -		$info->{upd_str} = $available; - -		my $str = sprintf "%s  <  %s", $current, $available; -		if (length($str) <= 80) { -			$max = length($current) if length($current) > $max; -		} -	} - -	my @listing; -	foreach my $sbo (sort keys %updates) { -		my $info = $updates{$sbo}; - -		my $str = sprintf "%s  <  %s", $info->{name_str}, $info->{upd_str}; -		if (length($str) <= 80) { -			$str = sprintf "%-*s  <  %s", $max, $info->{name_str}, $info->{upd_str}; -			my $adjust = 1; -			while (length($str) > 80) { -				$str = sprintf "%-*s  <  %s", $max-$adjust++, $info->{name_str}, $info->{upd_str}; -			} -		} -		push @listing, $str; -	} -	return @listing; -} - -# print list of updates -sub print_output { -	my @listing = @_; -	if (@listing) { -		print "\n"; -		say $_ for @listing; -		print "\n"; -		# save a log of available updates -		my $logfile = '/var/log/sbocheck.log'; -		unlink $logfile if -f $logfile; -		my ($log_fh, $exit) = open_fh($logfile, '>'); -		# non-fatal -		if ($exit) { -			warn $log_fh; -		} else { -			say {$log_fh} $_ for @listing; -			close $log_fh; -			say "A copy of the above result is kept in $logfile\n"; -		} -	} else { -		say "\nNo updates available."; -	} -	return 1; -} - -my @listing = get_update_list(); -print_output(@listing); - -exit 0; | 
