#!perl use Test::More tests => 8; use FindBin; use Init::Freebsd::RCConf; my @methods = qw{ load add_line set_value write_file }; my $file_name = $FindBin::Bin . '/rc.conf2'; build_conf($file_name); my $conf = Init::Freebsd::RCConf->new(); $conf->set_file_name($file_name); isa_ok( $conf, 'Init::Freebsd::RCConf' ); can_ok( $conf, $_ ) for (@methods); $conf->load(); $conf->set_value( 'sshd', 'NO' ); $conf->write_file(); my $sshd = look_for( $file_name, 'sshd' ); ok( $sshd =~ /NO/, 'SSH set to "NO"' ); $conf->set_value( 'ssl-something', 'YES' ); $conf->write_file(); my $ssl = look_for( $file_name, 'ssl-something' ); ok( $ssl =~ /YES/, 'ssl-something set to YES' ); $conf->set_value( 'ssl-something', 'NO' ); $conf->write_file(); my $ssl = look_for( $file_name, 'ssl-something' ); ok( $ssl =~ /NO/, 'ssl-something set to NO' ); unlink($file_name); ############################################################################### sub build_conf { my $file_name = shift; open( my $file, '>', $file_name ) or die 'Cannot open file' . "\n"; for my $line () { print {$file} $line; } close $file; } sub look_for { my $file_name = shift; my $service_name = shift; open( my $file, '<', $file_name ) or die 'Cannot open file' . "\n"; for my $line (<$file>) { return $line if $line =~ /$service_name/; } } __DATA__ #This is a example file. sshd_enable="YES" named_enable="YES" pureftpd_enable="YES" mysql_enable="YES"