version 1.1, 2006/08/24 22:46:30
|
version 1.2, 2006/09/20 19:23:24
|
Line 11 use LONCAPA::Configuration;
|
Line 11 use LONCAPA::Configuration;
|
use Cwd; |
use Cwd; |
|
|
my $dump_db = './dump_db'; |
my $dump_db = './dump_db'; |
my $dir = './test'; |
my $create_db = './create_db'; |
|
my $dir = './annarbor'; |
|
|
my %perlvar=%{&LONCAPA::Configuration::read_conf('loncapa.conf')}; |
my %perlvar=%{&LONCAPA::Configuration::read_conf('loncapa.conf')}; |
|
|
Line 47 sub process_db {
|
Line 48 sub process_db {
|
return if ($_!~m/\.db$/); |
return if ($_!~m/\.db$/); |
my $file = $_; |
my $file = $_; |
my $dbref =&lock_db($file); |
my $dbref =&lock_db($file); |
print("attempting $dbref\n"); |
print("attempting $file\n"); |
my %newdb; |
my %newdb; |
my $new_file = $file.'.new'; |
my $new_file = $file.'.new'; |
if (!tie(%newdb,'GDBM_File',$new_file,&GDBM_WRCREAT(),0640)) { |
system("$dump_db -f $file|$create_db -f $new_file"); |
die("unable to create new db $new_file $! $@"); |
# print("finishing $dbref\n"); |
} |
|
open(my $fh,"$dump_db -f $file|"); |
|
while (my $entry = <$fh>) { |
|
chomp($entry); |
|
if ($entry =~/^ERROR:/) { |
|
die($entry); |
|
} |
|
my ($key,$value) = split(' -> ',$entry,2); |
|
$newdb{&unescape($key)} = &unescape($value); |
|
} |
|
print("finishing $dbref\n"); |
|
untie(%newdb); |
|
untie($dbref); |
untie($dbref); |
system("/bin/mv $file $file.old"); |
system("/bin/mv $file $file.old"); |
system("/bin/mv $file.new $file"); |
system("/bin/mv $file.new $file"); |