diff options
| author | Mystery Man <unknown@mandriva.org> | 2004-06-15 16:50:22 +0000 |
|---|---|---|
| committer | Mystery Man <unknown@mandriva.org> | 2004-06-15 16:50:22 +0000 |
| commit | 8ea9beca90c410e12593fedfb6e741dbdf8795d0 (patch) | |
| tree | 544a377d0ea57462110009fbbbfd14473390e2a1 /perl-install/modules | |
| parent | b5dc638815c772056e07cd013f5b1674900456d5 (diff) | |
| download | drakx-topic/mandrakesoft.tar drakx-topic/mandrakesoft.tar.gz drakx-topic/mandrakesoft.tar.bz2 drakx-topic/mandrakesoft.tar.xz drakx-topic/mandrakesoft.zip | |
This commit was manufactured by cvs2svn to create branch 'mandrakesoft'.topic/mandrakesoft
Diffstat (limited to 'perl-install/modules')
| -rw-r--r-- | perl-install/modules/interactive.pm | 150 | ||||
| -rw-r--r-- | perl-install/modules/parameters.pm | 60 |
2 files changed, 0 insertions, 210 deletions
diff --git a/perl-install/modules/interactive.pm b/perl-install/modules/interactive.pm deleted file mode 100644 index 51c58cc85..000000000 --- a/perl-install/modules/interactive.pm +++ /dev/null @@ -1,150 +0,0 @@ -package modules::interactive; -use interactive; -use modules; -use common; - -sub config_window { - my ($in, $data) = @_; - require modules; - modules::mergein_conf('/etc/modules.conf'); - my %conf = modules::get_parameters($data->{driver}); - require modules::parameters; - my @l; - foreach (modules::parameters::parameters($data->{driver})) { - my ($name, $format, $description) = @$_; - push @l, { label => $name, help => join("\n", $description, if_(c::kernel_version() !~ /^\Q2.6/, "[$format]")), - val => \$conf{$name}, allow_empty_list => 1 }; - } - # BUG: once we've released mdk9.2 and unfreeze cooker, morph this - # into a proper error dialog with a nice error message (but - # for now we cannot due to string freeze :-() - @l = { label => N("Parameters"), help => "", val => N("NONE"), allow_empty_list => 1 } if !@l; - if ($in->ask_from(N("Module configuration"), N("You can configure each parameter of the module here."), \@l)) { - my $options = join(' ', map { if_($conf{$_}, "$_=$conf{$_}") } keys %conf); - if ($options) { - modules::set_options($data->{driver}, $options); - modules::write_conf(); - } - } -} - -sub load_category { - my ($in, $category, $b_auto, $b_at_least_one) = @_; - - my @l; - { - my $w; - my $wait_message = sub { undef $w; $w = wait_load_module($in, $category, @_) }; - @l = modules::load_category($category, $wait_message); - undef $w; #- help perl_checker - } - if (my @err = grep { $_ } map { $_->{error} } @l) { - my $return = $in->ask_warn('', join("\n", @err)); - $in->exit(1) if !defined($return); - } - return @l if $b_auto && (@l || !$b_at_least_one); - - @l = map { $_->{description} } @l; - - if ($b_at_least_one && !@l) { - @l = load_category__prompt($in, $category) or return; - } - - load_category__prompt_for_more($in, $category, @l); -} - -sub load_category__prompt_for_more { - my ($in, $category, @l) = @_; - - (my $msg_type = $category) =~ s/\|.*//; - - while (1) { - my $msg = @l ? - [ N("Found %s %s interfaces", join(", ", map { qq("$_") } @l)), - N("Do you have another one?") ] : - N("Do you have any %s interfaces?", $msg_type); - - my $r = 'No'; - $in->ask_from_({ messages => $msg, - if_($category =~ m|disk/scsi|, interactive_help_id => 'setupSCSI'), - }, - [ { list => [ N_("Yes"), N_("No"), N_("See hardware info") ], val => \$r, type => 'list', format => \&translate } ]); - if ($r eq "No") { return @l } - if ($r eq "Yes") { - push @l, load_category__prompt($in, $category) || next; - } else { - $in->ask_warn('', join("\n", detect_devices::stringlist())); - } - } -} - -sub wait_load_module { - my ($in, $category, $text, $module) = @_; - $in->wait_message('', - [ - #-PO: the first %s is the card type (scsi, network, sound,...) - #-PO: the second is the vendor+model name - N("Installing driver for %s card %s", $category, $text), if_($::expert, N("(module %s)", $module)) - ]); -} - -sub load_module__ask_options { - my ($in, $module_descr, $parameters) = @_; - - my @parameters = map { [ @$_[0, 1, 2] ] } @$parameters; - - if (@parameters) { - $in->ask_from('', - N("You may now provide options to module %s.\nNote that any address should be entered with the prefix 0x like '0x123'", $module_descr), - [ map { { label => $_->[0] . ($_->[1] ? " ($_->[1])" : ''), help => $_->[2], val => \$_->[3] } } @parameters ], - ) or return; - [ map { if_($_->[3], "$_->[0]=$_->[3]") } @parameters ]; - } else { - my $s = $in->ask_from_entry('', -N("You may now provide options to module %s. -Options are in format ``name=value name2=value2 ...''. -For instance, ``io=0x300 irq=7''", $module_descr), N("Module options:")) or return; - [ split ' ', $s ]; - } -} - -sub load_category__prompt { - my ($in, $category) = @_; - - (my $msg_type = $category) =~ s/\|.*//; - my %available_modules = map_each { $::a => $::b ? "$::a ($::b)" : $::a } modules::category2modules_and_description($category); - my $module = $in->ask_from_listf('', -#-PO: the %s is the driver type (scsi, network, sound,...) - N("Which %s driver should I try?", $msg_type), - sub { $available_modules{$_[0]} }, - [ keys %available_modules ]) or return; - my $module_descr = $available_modules{$module}; - - my $options; - require modules::parameters; - my @parameters = modules::parameters::parameters($module); - if (@parameters && $in->ask_from_list_('', -formatAlaTeX(N("In some cases, the %s driver needs to have extra information to work -properly, although it normally works fine without them. Would you like to specify -extra options for it or allow the driver to probe your machine for the -information it needs? Occasionally, probing will hang a computer, but it should -not cause any damage.", $module_descr)), [ N_("Autoprobe"), N_("Specify options") ], 'Autoprobe') ne 'Autoprobe') { - $options = load_module__ask_options($in, $module_descr, \@parameters) or return; - } - while (1) { - eval { - my $_w = wait_load_module($in, $category, $module_descr, $module); - log::l("user asked for loading module $module (type $category, desc $module_descr)"); - modules::load([ $module, @$options ]); - }; - return $module_descr if !$@; - - $in->ask_yesorno('', -N("Loading module %s failed. -Do you want to try again with other parameters?", $module_descr), 1) or return; - - $options = load_module__ask_options($in, $module_descr, \@parameters) or return; - } -} - -1; diff --git a/perl-install/modules/parameters.pm b/perl-install/modules/parameters.pm deleted file mode 100644 index 66590f7d8..000000000 --- a/perl-install/modules/parameters.pm +++ /dev/null @@ -1,60 +0,0 @@ -package modules::parameters; # $Id$ - -use diagnostics; -use strict; - -#-###################################################################################### -#- misc imports -#-###################################################################################### -use common; -use modules; - - -sub parameters { - my ($module) = @_; - - if (!$::isStandalone && !$::testing) { - ($module) = modules::extract_modules('/tmp', $module); - } - - my @parameters; - foreach (common::join_lines(run_program::get_stdout('modinfo', '-p', $module))) { - chomp; - next if /^warning:/; - (my $name, $_) = /(\w+)(?::|\s+)(.*)/s or warn "modules::parameters::get_options_name($module): unknown line\n"; - if (c::kernel_version() =~ /^\Q2.6/) { - push @parameters, [ $name, '', $_ ]; - next; - } - - my $c_types = 'int|string|short|byte|char|long'; - my ($is_a_number, $description, $min, $max) = (0, '', 1, 1); - if (/^($c_types) array \(min = (\d+), max = (\d+)\),?\s*(.*)/s) { - $_ = $4; - #- seems like "char" are buggy entries - ($is_a_number, $min, $max) = ($1 ne 'string', $2, $3) if $1 ne 'char'; - } elsif (/^($c_types),?\s*(.*)/s) { - $_ = $2; - #- here "char" really are size-limited strings, modinfo doesn't display the size limit (but since we don't care about it, it doesn't matter :) - $is_a_number = $1 ne 'string' if $1 ne 'char'; - } else { - #- for things like "no format character" or "unknown format character" - } - if (/^description "(.*)",?\s*/s) { - ($description, $_) = ($1, $2); - } - #- print "STILL HAVE ($_)\n" if $_; - - my $format = $min == 1 && $max == 1 ? - ($is_a_number ? N("a number") : '') : - $min == $max ? - ($is_a_number ? N("%d comma separated numbers", $min) : N("%d comma separated strings", $min)) : - $min == 1 ? - ($is_a_number ? N("comma separated numbers") : N("comma separated strings")) : - ''; #- too weird and buggy, do not display it - push @parameters, [ $name, $format, $description ]; - } - @parameters; -} - -1; |
