#!/usr/bin/env perl # # vim: set ts=4:noet # # sbocheck # script to update the local sbo tree and check for updates # # authors: Jacob Pipkin # Luke Williams # license: WTFPL use 5.16.0; use strict; use warnings FATAL => 'all'; use SBO::Lib; use Getopt::Long; use Text::Tabulate; use File::Basename; my $self = basename ($0); sub show_usage () { print < \$help, 'version|v' => \$vers); show_usage and exit 0 if $help; show_version and exit 0 if $vers; update_tree; # retrieve and format list of available updates sub get_update_list () { print "Checking for updated SlackBuilds...\n"; my $updates = get_available_updates; # pretty formatting. my @listing; for my $update (@$updates) { my $string = "$$update{name}-$$update{installed}"; $string .= " < needs updating (SBo has $$update{update})\n"; push @listing, $string; } return \@listing; } # Text::Tabulate and print list of updates sub print_output ($) { exists $_[0] or script_error 'print_output requires an argument'; my $listing = shift; if (exists $$listing[0]) { my $tab = new Text::Tabulate (); $tab->configure (tab => '\s'); my $output = $tab->format (@$listing); say "\n". $output; } else { say "\nNo updates available."; } } my $output = get_update_list; print_output $output; exit 0;