summaryrefslogtreecommitdiffstats
path: root/perl-install/modparm.pm
diff options
context:
space:
mode:
Diffstat (limited to 'perl-install/modparm.pm')
-rw-r--r--perl-install/modparm.pm84
1 files changed, 32 insertions, 52 deletions
diff --git a/perl-install/modparm.pm b/perl-install/modparm.pm
index a630cdd5c..b6aee8905 100644
--- a/perl-install/modparm.pm
+++ b/perl-install/modparm.pm
@@ -1,14 +1,26 @@
-package modparm;
+package modparm; # $Id$
+use diagnostics;
+use strict;
+
+#-######################################################################################
+#- misc imports
+#-######################################################################################
+use common qw(:common :functional);
use log;
-my %modparm_hash;
-sub read_modparm_file($) {
- my ($file) = @_;
+
+#-######################################################################################
+#- Functions
+#-######################################################################################
+sub read_modparm_file {
+ my $file = -e "modparm.lst" ? "modparm.lst" : "$ENV{SHARE_PATH}/modparm.lst";
my @line;
- open F, $file;
+ my %modparm_hash;
+ local *F; open F, $file or log::l("missing $file: $!"), return;
+ local $_;
while (<F>) {
chomp;
@line = split ':';
@@ -19,62 +31,30 @@ sub read_modparm_file($) {
desc => $line [4],
};
}
- close F;
+ \%modparm_hash;
}
-sub get_options_result($;$) {
- my ($module,$value) = @_;
- my @names = keys %{$modparm_hash{$module}};
- my $options;
- my $result;
- my $i;
-
- for $i (0..$#$value) {
- $result = $ {$value->[$i]};
-
- if ($result != "") {
- $options .= "$names[$i]=$result ";
- }
- }
+sub get_options_result($@) {
+ my ($module, @value) = @_;
+ my $modparm_hash = modparm::read_modparm_file;
- return $options;
+ mapn {
+ my ($a, $b) = @_;
+ $a ? "$b=$a" : ()
+ } \@value, [ keys %{$modparm_hash->{$module}} ];
}
sub get_options_name($) {
my ($module) = @_;
- my @names = keys %{$modparm_hash{$module}};
- my @result;
- my $opttype;
- my $default;
-
- foreach (@names) {
- $opttype = $modparm_hash{$module}{$_}{type};
- $default = $modparm_hash{$module}{$_}{default};
+ my @names;
+ my $modparm_hash = modparm::read_modparm_file;
- if (defined($default)) {
- push @result, _("$_ ($opttype)[$default]");
- } else {
- push @result, _("$_ ($opttype)");
- }
+ while (my ($k, $v) = each %{$modparm_hash->{$module} || {}}) {
+ my $opttype = $v->{type};
+ my $default = $v->{default};
+ push @names, "$k ($v->{type})" . (defined($v->{default}) && "[$v->{default}]");
}
-
- return \@result;
+ @names;
}
-sub get_options_value($) {
- my ($module) = @_;
- my @names = keys %{$modparm_hash{$module}};
- my @result;
-
- for $i (0..$#names) {
- my $value = "";
-
- $result[$i] = \$value;
- }
-
- return \@result;
-}
-
-read_modparm_file("/tmp/modparm.txt");
-
1;