From eb6d3112745b994a7780a9d9f82b5887a268badd Mon Sep 17 00:00:00 2001 From: Martin Whitaker Date: Wed, 30 Nov 2022 17:45:17 +0000 Subject: Allow user to specify the mirror/downloader when applying updates. --- draklive-install | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) (limited to 'draklive-install') diff --git a/draklive-install b/draklive-install index 35afff3..996d6e3 100755 --- a/draklive-install +++ b/draklive-install @@ -475,12 +475,41 @@ Do you want to setup the update media?")), return 0; }; + require urpm; + require urpm::media; + + my $urpm = urpm->new(); + $urpm->{log} = \&log::l; + urpm::set_files($urpm, $::prefix); + urpm::media::read_config($urpm); + + $in->{packages} = $urpm; + $in->{product_id} = mageia_release_info(); + + require mirror; + require urpm::download; + + my $downloader = sub { + my ($url) = @_; + urpm::download::get_content($urpm, $url); + }; + mirror::register_downloader($downloader); + + my $urpmi_options = { mirror_url => '$MIRRORLIST' }; + try_again: enable_network_connection($in); + any::ask_mirror_and_downloader($in, $urpmi_options); + any::urpmi_set_downloader($in, $urpm, $urpmi_options->{downloader}) || die("Failed to set downloader\n"); + + if ($urpmi_options->{mirror_url} ne '$MIRRORLIST') { + $urpmi_options->{mirror_url} = any::ask_mirror($in, 'distrib', $urpmi_options->{mirror_url}); + } + clean_rpmdb_shared_regions(); - if (any::urpmi_add_all_media($in)) { + if (any::urpmi_add_all_media($in, undef, $urpmi_options->{mirror_url})) { log::l("successfully added update media"); return 1; } -- cgit v1.2.1