From e9ca401d4091b43245096a088043ef7e4ff50196 Mon Sep 17 00:00:00 2001 From: Olivier Blin Date: Mon, 18 Aug 2008 15:59:06 +0000 Subject: move hardware packages detection code in pkgs --- perl-install/install/steps.pm | 21 +-------------------- perl-install/pkgs.pm | 23 +++++++++++++++++++++++ 2 files changed, 24 insertions(+), 20 deletions(-) diff --git a/perl-install/install/steps.pm b/perl-install/install/steps.pm index 07c9063ed..812ff7776 100644 --- a/perl-install/install/steps.pm +++ b/perl-install/install/steps.pm @@ -573,26 +573,7 @@ sub install_urpmi { sub install_hardware_packages { my ($o) = @_; if ($o->{match_all_hardware}) { - my @l; - - require Xconfig::card; - require Xconfig::proprietary; - my $cards = Xconfig::card::readCardsDB("$ENV{SHARE_PATH}/ldetect-lst/Cards+"); - my @drivers = grep { $_ } uniq(map { $_->{Driver2} } values %$cards); - push @l, map { Xconfig::proprietary::pkgs_for_Driver2($_, $o->do_pkgs) } @drivers; - - require network::connection; - require network::thirdparty; - foreach my $type (network::connection->get_types) { - $type->can('get_thirdparty_settings') or next; - foreach my $settings (@{$type->get_thirdparty_settings || []}) { - foreach (@network::thirdparty::thirdparty_types) { - my @packages = network::thirdparty::get_required_packages($_, $settings); - push @l, network::thirdparty::get_available_packages($_, $o->do_pkgs, @packages); - } - } - } - + my @l = pkgs::detect_hardware_packages($o->do_pkgs, $o->{match_all_hardware}); $o->do_pkgs->install(@l) if @l; } } diff --git a/perl-install/pkgs.pm b/perl-install/pkgs.pm index 3d5ccecef..6d795f4e5 100644 --- a/perl-install/pkgs.pm +++ b/perl-install/pkgs.pm @@ -152,4 +152,27 @@ sub list_hardware_packages { grep { !/openoffice/ } simple_read_rpmsrate($o_match_all_hardware); } +sub detect_hardware_packages { + my ($do_pkgs, $o_match_all_hardware) = @_; + my @l; + require Xconfig::card; + require Xconfig::proprietary; + my $cards = Xconfig::card::readCardsDB("$ENV{SHARE_PATH}/ldetect-lst/Cards+"); + my @drivers = grep { $_ } uniq(map { $_->{Driver2} } values %$cards); + push @l, map { Xconfig::proprietary::pkgs_for_Driver2($_, $do_pkgs) } @drivers; + + require network::connection; + require network::thirdparty; + foreach my $type (network::connection->get_types) { + $type->can('get_thirdparty_settings') or next; + foreach my $settings (@{$type->get_thirdparty_settings || []}) { + foreach (@network::thirdparty::thirdparty_types) { + my @packages = network::thirdparty::get_required_packages($_, $settings); + push @l, network::thirdparty::get_available_packages($_, $do_pkgs, @packages); + } + } + } + @l; +} + 1; -- cgit v1.2.1