summaryrefslogtreecommitdiffstats
path: root/perl-install/standalone.pm
diff options
context:
space:
mode:
authorPascal Rigaux <pixel@mandriva.com>2002-08-21 20:43:06 +0000
committerPascal Rigaux <pixel@mandriva.com>2002-08-21 20:43:06 +0000
commit48df454d604810ab006d7f3ce1b545c83df1e540 (patch)
tree1dca910aee1523e4fdfdc3a56020123414ede71f /perl-install/standalone.pm
parente15e62ac8668e3538ef9bdc9cc5193c5debb1af4 (diff)
downloaddrakx-48df454d604810ab006d7f3ce1b545c83df1e540.tar
drakx-48df454d604810ab006d7f3ce1b545c83df1e540.tar.gz
drakx-48df454d604810ab006d7f3ce1b545c83df1e540.tar.bz2
drakx-48df454d604810ab006d7f3ce1b545c83df1e540.tar.xz
drakx-48df454d604810ab006d7f3ce1b545c83df1e540.zip
- add do_pkgs->are_installed
- add an auto parameter to ensure_is_installed - implement do_pkgs->ensure_is_installed during install
Diffstat (limited to 'perl-install/standalone.pm')
-rw-r--r--perl-install/standalone.pm13
1 files changed, 11 insertions, 2 deletions
diff --git a/perl-install/standalone.pm b/perl-install/standalone.pm
index 54205dc7b..e3463df10 100644
--- a/perl-install/standalone.pm
+++ b/perl-install/standalone.pm
@@ -21,6 +21,7 @@ foreach (@ARGV) {
package pkgs_interactive;
use run_program;
+use common;
sub interactive::do_pkgs {
@@ -51,10 +52,11 @@ sub install {
}
sub ensure_is_installed {
- my ($o, $pkg, $file) = @_;
+ my ($o, $pkg, $file, $auto) = @_;
if (! -e $file) {
- $o->{in}->ask_okcancel('', _("The package %s needs to be installed. Do you want to install it?", $pkg), 1) or return;
+ $o->{in}->ask_okcancel('', _("The package %s needs to be installed. Do you want to install it?", $pkg), 1)
+ or return if !$auto;
$o->{in}->do_pkgs->install($pkg);
}
if (! -e $file) {
@@ -75,6 +77,13 @@ sub is_installed {
run_program::run('rpm', '>', '/dev/null', '-q', @l);
}
+sub are_installed {
+ my ($o, @l) = @_;
+ my @l2;
+ run_program::run('rpm', '>', \@l2, '-q', '--qf', "%{name}\n", @l);
+ intersection(\@l, [ map { chomp_($_) } @l2 ]);
+}
+
sub remove {
my ($o, @l) = @_;
$o->{in}->suspend;