home *** CD-ROM | disk | FTP | other *** search
/ Inter.Net 55-2 / Inter.Net 55-2.iso / Mandrake / mdkinst / usr / bin / perl-install / modparm.pm < prev    next >
Encoding:
Perl POD Document  |  2000-01-12  |  1.0 KB  |  61 lines

  1. package modparm;
  2.  
  3.  
  4.  
  5.  
  6.  
  7.  
  8.  
  9. use common qw(:common :functional);
  10. use log;
  11.  
  12.  
  13.  
  14.  
  15.  
  16.  
  17. sub read_modparm_file {
  18.   my $file = -e "modparm.lst" ? "modparm.lst" : "/usr/share/modparm.lst";
  19.   my @line;
  20.  
  21.   my %modparm_hash;
  22.   local *F;
  23.   open F, $file or log::l("missing $file: $!"), return;
  24.   foreach (<F>) {
  25.     chomp;
  26.     @line = split ':';
  27.  
  28.     $modparm_hash{$line[0]}{$line[1]} = {
  29.                      type => $line[2],
  30.                      default => $line[3],
  31.                      desc => $line [4],
  32.                     };
  33.   }
  34.   \%modparm_hash;
  35. }
  36.  
  37. sub get_options_result($@) {
  38.   my ($module, @value) = @_;
  39.   my $modparm_hash = modparm::read_modparm_file;
  40.  
  41.   mapn {
  42.       my ($a, $b) = @_;
  43.       $a ? "$b=$a" : ()
  44.   } \@value, [ keys %{$modparm_hash->{$module}} ];
  45. }
  46.  
  47. sub get_options_name($) {
  48.   my ($module) = @_;
  49.   my @names;
  50.   my $modparm_hash = modparm::read_modparm_file;
  51.  
  52.   while (my ($k, $v) = each %{$modparm_hash->{$module} || {}}) {
  53.        my $opttype = $v->{type};
  54.        my $default = $v->{default};
  55.        push @names, "$k ($v->{type})" . (defined($v->{default}) && "[$v->{default}]");
  56.   }
  57.   @names;
  58. }
  59.  
  60. 1;
  61.