1package Test::ConfigureGrepmail; 2 3use strict; 4 5sub Set_Caching_And_Grep 6{ 7 my $filename = shift; 8 my $enable_caching = shift; 9 my $enable_grep = shift; 10 11 my $code = _Read_Code($filename); 12 13 $code =~ s/^\$USE_CACHING = (\d+);/\$USE_CACHING = $enable_caching;/m; 14 $code =~ s/^\$USE_GREP = (\d+);/\$USE_GREP = $enable_grep;/m; 15 16 _Write_Code($filename, $code); 17} 18 19# -------------------------------------------------------------------------- 20 21sub Set_Cache_File 22{ 23 my $filename = shift; 24 my $cache_file = shift; 25 26 my $code = _Read_Code($filename); 27 28 if ($code =~ /(Mail::Mbox::MessageParser::SETUP_CACHE\( {.*?} *\))/s) 29 { 30 my $original_cache_setup = $1; 31 my $new_cache_setup = $original_cache_setup; 32 33 $new_cache_setup =~ s/('file_name'\s*=>\s*)".*?"/$1"$cache_file"/; 34 35 $code =~ s/\Q$original_cache_setup\E/$new_cache_setup/; 36 } 37 38 _Write_Code($filename, $code); 39} 40 41# -------------------------------------------------------------------------- 42 43sub _Read_Code 44{ 45 my $filename = shift; 46 47 local $/ = undef; 48 49 open SOURCE, $filename 50 or die "Couldn't open grepmail file \"$filename\": $!"; 51 my $code = <SOURCE>; 52 close SOURCE; 53 54 return $code; 55} 56 57# -------------------------------------------------------------------------- 58 59sub _Write_Code 60{ 61 my $filename = shift; 62 my $code = shift; 63 64 open SOURCE, ">$filename" 65 or die "Couldn't open grepmail file \"$filename\": $!"; 66 print SOURCE $code; 67 close SOURCE; 68} 69 701; 71