package Dahdi::Config::Gen::Modules; use strict; use Dahdi::Config::Gen qw(is_true); sub new($$$) { my $pack = shift || die; my $gconfig = shift || die; my $genopts = shift || die; my $file = $ENV{DAHDI_MODULES_FILE} || "/etc/dahdi/modules"; my $self = { FILE => $file, GCONFIG => $gconfig, GENOPTS => $genopts, }; bless $self, $pack; return $self; } sub generate($$$) { my $self = shift || die; my $file = $self->{FILE}; my $gconfig = $self->{GCONFIG}; my $genopts = $self->{GENOPTS}; rename "$file", "$file.bak" or $! == 2 # ENOENT (No dependency on Errno.pm) or die "Failed to backup old config: $!\n"; #$gconfig->dump; print "Generating $file\n" if $genopts->{verbose}; open(F, ">$file") || die "$0: Failed to open $file: $!\n"; my $old = select F; printf "# Autogenerated by $0 (%s) on %s\n", __PACKAGE__, scalar(localtime); print "# If you edit this file and execute $0 again,\n"; print "# your manual changes will be LOST.\n"; my @drivers = Dahdi::Hardware->drivers; print join("\n", @drivers),"\n"; close F; select $old; } 1; __END__ =head1 NAME modules - Generate list of dahdi drivers to load at startup =head1 SYNOPSIS use Dahdi::Config::Gen::Dahdi; my $cfg = new Dahdi::Config::Gen::Modules(\%global_config, \%genopts); $cfg->generate(@span_list); =head1 DESCRIPTION Generate the F. This is a list of modules, one per line. This list is normally used by F. Its location may be overriden via the environment variable F.