summaryrefslogtreecommitdiffstats
path: root/perl-install/standalone.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/standalone.pm')
-rw-r--r--perl-install/standalone.pm33
1 files changed, 10 insertions, 23 deletions
diff --git a/perl-install/standalone.pm b/perl-install/standalone.pm
index 247e65316..e4f3480d4 100644
--- a/perl-install/standalone.pm
+++ b/perl-install/standalone.pm
@@ -169,20 +169,11 @@ sub install {
return 1;
}
- my $wait;
- if ($o->{in}->isa('interactive::newt')) {
- $o->{in}->suspend;
- } else {
- $wait = $o->{in}->wait_message('', N("Installing packages..."));
- }
+ my $wait = $o->{in}->wait_message('', N("Installing packages..."));
+ $o->{in}->suspend;
log::explanations("installed packages @l");
my $ret = system('urpmi', '--allow-medium-change', '--auto', '--best-output', '--no-verify-rpm', @l) == 0;
-
- if ($o->{in}->isa('interactive::newt')) {
- $o->{in}->resume;
- } else {
- undef $wait;
- }
+ $o->{in}->resume;
$ret;
}
@@ -250,24 +241,24 @@ sub check_kernel_module_packages {
sub what_provides {
my ($_o, $name) = @_;
- my ($what) = split '\n', `urpmq '$name' 2>/dev/null`;
- split '\|', $what;
+ split('\|', chomp_(run_program::get_stdout('urpmq', $name)));
}
sub is_installed {
- my ($_o, @l) = @_;
- run_program::run('/bin/rpm', '>', '/dev/null', '-q', @l);
+ my ($o, $name) = @_;
+ are_installed($o, $name);
}
sub are_installed {
my ($_o, @l) = @_;
my @l2;
- run_program::run('/bin/rpm', '>', \@l2, '-q', '--qf', "%{name}\n", @l);
- intersection(\@l, [ map { chomp_($_) } @l2 ]);
+ run_program::run('/bin/rpm', '>', \@l2, '-q', '--qf', "%{name}\n", @l); #- don't care about the return value
+ intersection(\@l, [ chomp_(@l2) ]); #- can't return directly @l2 since it contains things like "package xxx is not installed"
}
sub remove {
my ($o, @l) = @_;
+ my $wait = $o->{in}->wait_message('', N("Removing packages..."));
$o->{in}->suspend;
log::explanations("removed packages @l");
my $ret = system('rpm', '-e', @l) == 0;
@@ -277,11 +268,7 @@ sub remove {
sub remove_nodeps {
my ($o, @l) = @_;
- $o->{in}->suspend;
- log::explanations("removed (with --nodeps) packages @l");
- my $ret = system('rpm', '-e', '--nodeps', @l) == 0;
- $o->{in}->resume;
- $ret;
+ remove($o, '--nodeps', @l) == 0;
}
################################################################################