diff options
author | Tzafrir Cohen <tzafrir.cohen@xorcom.com> | 2008-06-25 10:01:11 +0000 |
---|---|---|
committer | Tzafrir Cohen <tzafrir.cohen@xorcom.com> | 2008-06-25 10:01:11 +0000 |
commit | f543cf5b0c9cbe3053ee445f6f9b2f3506a2e949 (patch) | |
tree | 9dad753ececa54c19681f6da369da6264c2f4261 /xpp/perl_modules/Dahdi/Config/GenconfDefaults.pm | |
parent | 5d43e446fe362574ad89b95599411ea4f0fa3192 (diff) |
* Rename Dahdi::Config::Defaults to Dahdi::Config::GenconfDefaults .
* Reads from the new /etc/dahdi/genconf_parameters .
* Do installl xpp_fxloader (the firmware loading wrapper script).
* Even more /etc/dahdi/system.conf string fixes.
git-svn-id: http://svn.asterisk.org/svn/dahdi/tools/trunk@4463 a0bf4364-ded3-4de4-8d8a-66a801d63aff
Diffstat (limited to 'xpp/perl_modules/Dahdi/Config/GenconfDefaults.pm')
-rw-r--r-- | xpp/perl_modules/Dahdi/Config/GenconfDefaults.pm | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/xpp/perl_modules/Dahdi/Config/GenconfDefaults.pm b/xpp/perl_modules/Dahdi/Config/GenconfDefaults.pm new file mode 100644 index 0000000..9988929 --- /dev/null +++ b/xpp/perl_modules/Dahdi/Config/GenconfDefaults.pm @@ -0,0 +1,39 @@ +package Dahdi::Config::GenconfDefaults; +# +# Written by Oron Peled <oron@actcom.co.il> +# Copyright (C) 2007, Xorcom +# This program is free software; you can redistribute and/or +# modify it under the same terms as Perl itself. +# +# $Id$ +# +use strict; + +# Use the shell to source a file and expand a given list +# of variables. +sub do_source($@) { + my $file = shift; + my @vars = @_; + my @output = `env -i sh -ec '. $file; export @vars; for i in @vars; do eval echo \$i=\\\$\$i; done'`; + die "$0: Sourcing '$file' exited with $?" if $?; + my %vars; + + foreach my $line (@output) { + chomp $line; + my ($k, $v) = split(/=/, $line, 2); + $vars{$k} = $v if grep /^$k$/, @vars; + } + return %vars; +} + +sub source_vars { + my @vars = @_; + my $default_file = $ENV{GENCONF_PARAMETERS} || "/etc/dahdi/genconf_parameters"; + if (! -r $default_file) { + return ("", ()); + } + my %vars = do_source($default_file, @vars); + return ($default_file, %vars); +} + +1; |