diff options
author | Jacob Pipkin <d4wnr4z0r@yahoo.com> | 2012-05-08 12:59:44 -0500 |
---|---|---|
committer | Jacob Pipkin <d4wnr4z0r@yahoo.com> | 2012-05-08 12:59:44 -0500 |
commit | b733e31ed228e9a5158afa91f95426925b4bd21c (patch) | |
tree | 4c5f31d1d4069ae9a9d1bc642e8e336fd8b31ef6 /SBO-Lib/lib | |
parent | 4100809e42dff57909910ef7e5ac8d5066a5c74a (diff) | |
download | sbotools2-b733e31ed228e9a5158afa91f95426925b4bd21c.tar.xz |
added -i option to not install a pkg after build.
Diffstat (limited to 'SBO-Lib/lib')
-rw-r--r-- | SBO-Lib/lib/SBO/Lib.pm | 159 |
1 files changed, 75 insertions, 84 deletions
diff --git a/SBO-Lib/lib/SBO/Lib.pm b/SBO-Lib/lib/SBO/Lib.pm index 0d99a0d..f49b0b1 100644 --- a/SBO-Lib/lib/SBO/Lib.pm +++ b/SBO-Lib/lib/SBO/Lib.pm @@ -42,7 +42,7 @@ use File::Copy; use File::Path qw(make_path remove_tree); use Fcntl; -$UID == 0 or print "This script requires root privileges.\n" and exit(1); +$UID == 0 or print "This script requires root privileges.\n" and exit (1); our $conf_dir = '/etc/sbotools'; our $conf_file = "$conf_dir/sbotools.conf"; @@ -59,7 +59,7 @@ if (-f $conf_file) { open my $reader, '<', $conf_file; my $text = do {local $/; <$reader>}; %config = $text =~ /^(\w+)=(.*)$/mg; - close($reader); + close ($reader); } for my $key (keys %config) { unless ($key ~~ @valid_conf_keys) { @@ -90,7 +90,7 @@ sub script_error { print "$_[0]\n"; print "Exiting.\n"; } - exit(1); + exit 1; } sub show_version { @@ -102,9 +102,9 @@ sub show_version { sub get_slack_version { if (-f '/etc/slackware-version') { open my $slackver, '<', '/etc/slackware-version'; - chomp(my $line = <$slackver>); - close($slackver); - my $slk_version = split_line($line,' ',1); + chomp (my $line = <$slackver>); + close ($slackver); + my $slk_version = split_line ($line,' ',1); $slk_version = '13.37' if $slk_version eq '13.37.0'; return $slk_version; } @@ -116,17 +116,17 @@ sub check_slackbuilds_txt { } else { print "I am unable to find SLACKBUILDS.TXT.\n"; print "Perhaps you need to \"sbosnap fetch\"?\n"; - exit(1); + exit 1; } } sub rsync_sbo_tree { - my $slk_version = get_slack_version(); + my $slk_version = get_slack_version (); my $cmd = 'rsync'; my @arg = ('-a','--exclude=*.tar.gz','--exclude=*.tar.gz.asc'); - push(@arg,"rsync://slackbuilds.org/slackbuilds/$slk_version/*"); - push(@arg,$config{SBO_HOME}); - system($cmd,@arg); + push (@arg,"rsync://slackbuilds.org/slackbuilds/$slk_version/*"); + push (@arg,$config{SBO_HOME}); + system ($cmd,@arg); print "Finished.\n"; return 1; } @@ -134,28 +134,28 @@ sub rsync_sbo_tree { sub check_home { my $sbo_home = $config{SBO_HOME}; if (-d $sbo_home) { - opendir(my $home_handle,$sbo_home); + opendir (my $home_handle,$sbo_home); while (readdir $home_handle) { next if /^\.[\.]{0,1}$/; print "$sbo_home exists and is not empty. Exiting.\n"; - exit(1); + exit 1; } } else { - make_path($sbo_home) or print "Unable to create $sbo_home. Exiting.\n" - and exit(1); + make_path ($sbo_home) or print "Unable to create $sbo_home. Exiting.\n" + and exit (1); } } sub fetch_tree { - check_home(); + check_home (); print "Pulling SlackBuilds tree...\n"; - rsync_sbo_tree(); + rsync_sbo_tree (); } sub update_tree { - check_slackbuilds_txt(); + check_slackbuilds_txt (); print "Updating SlackBuilds tree...\n"; - rsync_sbo_tree(); + rsync_sbo_tree (); } sub get_installed_sbos { @@ -163,21 +163,21 @@ sub get_installed_sbos { opendir my $diread, '/var/log/packages'; while (my $ls = readdir $diread) { next if $ls =~ /\A\./; - if (index($ls,"SBo") != -1) { - my @split = split(/-/,reverse($ls),4); + if (index ($ls,"SBo") != -1) { + my @split = split (/-/,reverse ($ls) ,4); my %hash; - $hash{name} = reverse($split[3]); - $hash{version} = reverse($split[2]); - push(@installed,\%hash); + $hash{name} = reverse ($split[3]); + $hash{version} = reverse ($split[2]); + push (@installed,\%hash); } } return @installed; } sub clean_line { - script_error('clean line requires an argument') + script_error ('clean line requires an argument') unless exists $_[0]; - chomp(my $line = shift); + chomp (my $line = shift); $line =~ s/[\s"\\]//g; return $line; } @@ -228,23 +228,23 @@ sub clean_line { # iterate over all the lines! # sub get_available_updates { - check_slackbuilds_txt(); + check_slackbuilds_txt (); my (@updates,$index); - my @pkg_list = get_installed_sbos(); + my @pkg_list = get_installed_sbos (); open my $sb_txt, '<', $slackbuilds_txt; my $found = 'FALSE'; FIRST: while (my $line = <$sb_txt>) { if ($found eq 'TRUE') { if ($line =~ /VERSION/) { $found = 'FALSE'; - my $sbo_version = split_line($line,' ',2); - if (versioncmp($sbo_version,$pkg_list[$index]{version}) == 1) { + my $sbo_version = split_line ($line,' ',2); + if (versioncmp ($sbo_version,$pkg_list[$index]{version}) == 1) { my %hash = ( name => $pkg_list[$index]{name}, installed => $pkg_list[$index]{version}, update => $sbo_version, ); - push(@updates,\%hash); + push (@updates,\%hash); } } } else { @@ -263,10 +263,10 @@ sub get_available_updates { } sub check_sbo_name_validity { - script_error('check_sbo_name_validity requires an argument') + script_error ('check_sbo_name_validity requires an argument') unless exists $_[0]; my $sbo = shift; - check_slackbuilds_txt(); + check_slackbuilds_txt (); my $valid = 'FALSE'; my $regex = qr/$name_regex\Q$sbo\E\n\z/; open my $sb_txt, '<', $slackbuilds_txt; @@ -276,19 +276,19 @@ sub check_sbo_name_validity { last FIRST; } } - close($sb_txt); + close ($sb_txt); unless ($valid eq 'TRUE') { print "$sbo does not exist in the SlackBuilds tree. Exiting.\n"; - exit(1); + exit 1; } return 1; } sub get_sbo_location { - script_error('get_sbo_location requires an argument.Exiting.') + script_error ('get_sbo_location requires an argument.Exiting.') unless exists $_[0]; my $sbo = shift; - check_slackbuilds_txt(); + check_slackbuilds_txt (); my $found = 'FALSE'; my $location; my $regex = qr/$name_regex\Q$sbo\E\n\z/; @@ -300,32 +300,32 @@ sub get_sbo_location { } if ($found eq 'TRUE') { if ($line =~ /LOCATION/) { - my $loc_line = split_line($line,' ',2); + my $loc_line = split_line ($line,' ',2); $loc_line =~ s#^\./##; $location = "$config{SBO_HOME}/$loc_line"; last FIRST; } } } - close($sb_txt); + close ($sb_txt); return $location; } sub split_line { - script_error('split_line requires three arguments') unless exists $_[2]; + script_error ('split_line requires three arguments') unless exists $_[2]; my ($line,$pattern,$index) = @_; my @split; if ($pattern eq ' ') { - @split = split("$pattern",$line); + @split = split ("$pattern",$line); } else { - @split = split(/$pattern/,$line); + @split = split (/$pattern/,$line); } - return clean_line($split[$index]); + return clean_line ($split[$index]); } sub split_equal_one { - script_error("split_equal_one requires an argument") unless exists $_[0]; - return split_line($_[0],'=',1); + script_error ('split_equal_one requires an argument') unless exists $_[0]; + return split_line ($_[0],'=',1); } sub find_download_info { @@ -404,53 +404,53 @@ sub get_sbo_downloads { } sub compute_md5sum { - script_error('compute_md5sum requires an argument.') unless exists $_[0]; - script_error('compute_md5sum argument is not a file.') unless -f $_[0]; + script_error ('compute_md5sum requires an argument.') unless exists $_[0]; + script_error ('compute_md5sum argument is not a file.') unless -f $_[0]; my $filename = shift; open my $reader, '<', $filename; my $md5 = Digest::MD5->new; - $md5->addfile($reader); + $md5->addfile ($reader); my $md5sum = $md5->hexdigest; - close($reader); + close ($reader); return $md5sum; } sub get_filename_from_link { - script_error('get_filename_from_link requires an argument') + script_error ('get_filename_from_link requires an argument') unless exists $_[0]; - my @split = split('/',reverse($_[0]),2); - chomp(my $filename = $distfiles .'/'. reverse($split[0])); + my @split = split ('/',reverse ($_[0]) ,2); + chomp (my $filename = $distfiles .'/'. reverse ($split[0]) ); return $filename; } sub check_distfile { - script_error('check_distfile requires an argument.') unless exists $_[0]; - my $filename = get_filename_from_link($_[0]); + script_error ('check_distfile requires an argument.') unless exists $_[0]; + my $filename = get_filename_from_link ($_[0]); return unless -d $distfiles; return unless -f $filename; - my $md5sum = compute_md5sum($filename); + my $md5sum = compute_md5sum ($filename); return unless $_[1] eq $md5sum; return 1; } sub get_distfile { - script_error('get_distfile requires an argument') unless exists $_[1]; + script_error ('get_distfile requires an argument') unless exists $_[1]; my ($link,$expected_md5sum) = @_; - my $filename = get_filename_from_link($link); - mkdir($distfiles) unless -d $distfiles; - chdir($distfiles); - my $out = system("wget $link"); + my $filename = get_filename_from_link ($link); + mkdir ($distfiles) unless -d $distfiles; + chdir ($distfiles); + my $out = system ("wget $link"); return unless $out == 0; - my $md5sum = compute_md5sum($filename); + my $md5sum = compute_md5sum ($filename); if ($md5sum ne $expected_md5sum) { print "md5sum failure for $filename.\n"; - exit(1); + exit (1); } return 1; } sub get_sbo_version { - script_error('get_sbo_version requires two arguments.') + script_error ('get_sbo_version requires two arguments.') unless exists $_[1]; my ($sbo,$location) = @_; my $version; @@ -458,32 +458,32 @@ sub get_sbo_version { my $version_regex = qr/\AVERSION=/; FIRST: while (my $line = <$info>) { if ($line =~ $version_regex) { - $version = split_equal_one($line); + $version = split_equal_one ($line); last FIRST; } } - close($info); + close ($info); return $version; } sub get_symlink_from_filename { - script_error('get_symlink_from_filename requires two arguments') + script_error ('get_symlink_from_filename requires two arguments') unless exists $_[1]; - script_error('get_symlink_from_filename first argument is not a file') + script_error ('get_symlink_from_filename first argument is not a file') unless -f $_[0]; - my @split = split('/',reverse($_[0]),2); - my $fn = reverse($split[0]); + my @split = split ('/',reverse ($_[0]) ,2); + my $fn = reverse ($split[0]); return "$_[1]/$fn"; } sub check_x32 { - script_error('check_x32 requires two arguments.') unless exists $_[1]; + script_error ('check_x32 requires two arguments.') unless exists $_[1]; my ($sbo,$location) = @_; open my $info,'<',"$location/$sbo.info"; my $regex = qr/^DOWNLOAD_x86_64/; FIRST: while (my $line = <$info>) { if ($line =~ $regex) { - return 1 if index($line,'UNSUPPORTED') != -1; + return 1 if index ($line,'UNSUPPORTED') != -1; } } return; @@ -561,18 +561,9 @@ sub make_distclean { } sub do_upgradepkg { - script_error ('do_upgradepkg requires two arguments.') unless exists $_[1]; - my ($sbo,$version) = @_; - my $pkg; - my $pkg_regex = qr/^(\Q$sbo\E-\Q$version\E-[^-]+-.*_SBo.t[xblg]z)$/; - opendir my $diread, '/tmp/'; - FIRST: while (my $ls = readdir $diread) { - if ($ls =~ $pkg_regex) { - chomp($pkg = "/tmp/$1"); - last FIRST; - } - } - system("/sbin/upgradepkg --reinstall --install-new $pkg"); - return $pkg; + script_error ('do_upgradepkg requires an argument.') unless exists $_[0]; + my $pkg = shift; + system ("/sbin/upgradepkg --reinstall --install-new $pkg"); + return; } |