1
0
mirror of https://github.com/fspc/gbootroot.git synced 2025-02-26 10:03:23 -05:00

Much more efficient code with the newest dswim.

This commit is contained in:
freesource 2001-10-18 21:25:57 +00:00
parent fed9b6c6cd
commit 59c77e7e23
2 changed files with 38 additions and 12 deletions

View File

@ -292,11 +292,17 @@ return $stuff;
# to test for anyways, weirder things have been known to happen. # to test for anyways, weirder things have been known to happen.
my @rpc; my @rpc;
foreach my $p (@required_packages) { $/ = "";
my @required_stuff = `swim -qi @required_packages`;
$/ = "\n";
foreach my $package_info (@required_stuff) {
$package_info =~ /^package[:]*\s+([-\+\d\w]+)/i;
my $p = $1;
$p =~ s/\+/\\+/g if $p !~ /\\+/g; $p =~ s/\+/\\+/g if $p !~ /\\+/g;
if ( grep(/Status: deinstall|Status: purge|package $p is not installed/, if ( grep(/Status: deinstall|Status: purge|package $p is not installed/,
`swim -qi $p`) == 1 ) { $package_info ) == 1 ) {
push(@rpc,$p); $p =~ s/\\//g if $p =~ /\\+/g;
push( @rpc, $p );
} }
} }
@ -310,11 +316,17 @@ if (@rpc) {
} }
my @epc; my @epc;
foreach my $p (@extra_packages) { $/ = "";
my @extra_stuff = `swim -qi @extra_packages`;
$/ = "\n";
foreach my $package_info (@extra_stuff) {
$package_info =~ /^package[:]*\s+([-\+\d\w]+)/i;
my $p = $1;
$p =~ s/\+/\\+/g if $p !~ /\\+/g; $p =~ s/\+/\\+/g if $p !~ /\\+/g;
if ( grep(/Status: deinstall|Status: purge|package $p is not installed/, if ( grep(/Status: deinstall|Status: purge|package $p is not installed/,
`swim -qi $p`) == 1 ) { $package_info ) == 1 ) {
push(@epc,$p); $p =~ s/\\//g if $p =~ /\\+/g;
push( @epc, $p );
} }
} }

View File

@ -265,14 +265,21 @@ return $stuff;
# to test for anyways, weirder things have been known to happen. # to test for anyways, weirder things have been known to happen.
my @rpc; my @rpc;
foreach my $p (@required_packages) { $/ = "";
my @required_stuff = `swim -qi @required_packages`;
$/ = "\n";
foreach my $package_info (@required_stuff) {
$package_info =~ /^package[:]*\s+([-\+\d\w]+)/i;
my $p = $1;
$p =~ s/\+/\\+/g if $p !~ /\\+/g; $p =~ s/\+/\\+/g if $p !~ /\\+/g;
if ( grep(/Status: deinstall|Status: purge|package $p is not installed/, if ( grep(/Status: deinstall|Status: purge|package $p is not installed/,
`swim -qi $p`) == 1 ) { $package_info ) == 1 ) {
push(@rpc,$p); $p =~ s/\\//g if $p =~ /\\+/g;
push( @rpc, $p );
} }
} }
if (@rpc) { if (@rpc) {
print STDERR "These are the required packages which were specified:\n\n"; print STDERR "These are the required packages which were specified:\n\n";
$, = " "; $, = " ";
@ -282,12 +289,19 @@ if (@rpc) {
$, = ""; $, = "";
} }
my @epc; my @epc;
foreach my $p (@extra_packages) { $/ = "";
my @extra_stuff = `swim -qi @extra_packages`;
$/ = "\n";
foreach my $package_info (@extra_stuff) {
$package_info =~ /^package[:]*\s+([-\+\d\w]+)/i;
my $p = $1;
$p =~ s/\+/\\+/g if $p !~ /\\+/g; $p =~ s/\+/\\+/g if $p !~ /\\+/g;
if ( grep(/Status: deinstall|Status: purge|package $p is not installed/, if ( grep(/Status: deinstall|Status: purge|package $p is not installed/,
`swim -qi $p`) == 1 ) { $package_info ) == 1 ) {
push(@epc,$p); $p =~ s/\\//g if $p =~ /\\+/g;
push( @epc, $p );
} }
} }