summaryrefslogtreecommitdiffstats
path: root/perl-install/install_steps_interactive.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/install_steps_interactive.pm')
-rw-r--r--perl-install/install_steps_interactive.pm32
1 files changed, 31 insertions, 1 deletions
diff --git a/perl-install/install_steps_interactive.pm b/perl-install/install_steps_interactive.pm
index 036ac87fe..838750637 100644
--- a/perl-install/install_steps_interactive.pm
+++ b/perl-install/install_steps_interactive.pm
@@ -1,7 +1,6 @@
package install_steps_interactive; # $Id$
-use diagnostics;
use strict;
use vars qw(@ISA $new_bootstrap);
@@ -396,6 +395,37 @@ sub deselectFoundMedia {
my ($o, $p) = @_;
install_any::deselectFoundMedia($o, $p);
}
+
+sub mirror2text { $crypto::mirrors{$_[0]} ? $crypto::mirrors{$_[0]}[0] . '|' . $_[0] : "-|URL" }
+sub askSupplMirror {
+ my ($o, $message) = @_;
+ my $u = $o->{updates} ||= {};
+ require crypto;
+ my @mirrors = do {
+ my $_w = $o->wait_message('', N("Contacting Mandrakelinux web site to get the list of available mirrors..."));
+ crypto::mirrors($o->{distro_type});
+ };
+ push @mirrors, '-';
+ $o->ask_from_(
+ {
+ messages => N("Choose a mirror from which to get the packages"),
+ cancel => N("Cancel"),
+ },
+ [ { separator => '|',
+ format => \&mirror2text,
+ list => \@mirrors,
+ val => \$u->{mirror},
+ }, ],
+ ) or $u->{mirror} = '';
+ if ($u->{mirror} eq '-') {
+ return $o->ask_from_entry('', $message) || '';
+ }
+ my $url = "ftp://$u->{mirror}$crypto::mirrors{$u->{mirror}}[1]";
+ $url =~ s/\bmedia\/?$//;
+ log::l("mirror chosen [$url]");
+ return $url;
+}
+
sub selectSupplMedia {
my ($o, $suppl_method) = @_;
install_any::selectSupplMedia($o, $suppl_method);