#!/usr/local/bin/perl #################################################################### # Copyright @ 1995-1999 University of Rochester # All Rights Reserved #################################################################### use lib '/ww/webwork/gage_system/webwork/system/lib/'; # mainWeBWorKDirectory # Called as # showDatabase.pl courseID use Global; use Auth; use strict; use GDBM_File; if (@ARGV != 2) { print "\nSyntax is import_webwork-database.pl courseID textDatabaseFile\n"; print " (e.g. import_webwork-database.pl demoCourse textDataBase)\n\n"; exit(0); } my $course = $ARGV[0]; my $textDatabaseFile = $ARGV[1]; # establish environment for this script &Global::getCourseEnvironment($course); # Directory paths my $databaseDirectory = getCourseDatabaseDirectory(); my $courseScriptsDirectory = getWebworkScriptDirectory(); # File names require "${courseScriptsDirectory}$Global::DBglue_pl"; require "${courseScriptsDirectory}$Global::HTMLglue_pl"; require "${courseScriptsDirectory}$Global::FILE_pl"; my $databaseFile = $Global::database; # get all psvn's for set my ($line,$item); my @probSetRecord = (); my $probSetString = ''; my @PROBSETarray = (); open (INFILE, "$textDatabaseFile") or wwerror("$0","can't open $textDatabaseFile for reading"); while (defined ($line = )) { chomp($line); unless ($line =~ /\S/) {next;} ## skip blank lines if ($line =~ /^[^\[]\s*(.*)/) { ## non bracketed line push @probSetRecord, $1;} else { ## bracketed line $probSetString = join ("\&", @probSetRecord); push @PROBSETarray, $probSetString; $line =~ /^\[(.*)\]$/; push @PROBSETarray, $1; @probSetRecord =(); } } close (INFILE); $probSetString = join ("\&", @probSetRecord); ## last record push @PROBSETarray, $probSetString; ## add last record shift @PROBSETarray; ## remove first item which is an empty probSetString my $mode = &GDBM_WRCREAT(); my $permission = $Global::standard_tie_permission; my $db; my %hash; $db = tie(%hash, "GDBM_File", "${databaseDirectory}${databaseFile}", $mode, $permission); %hash = @PROBSETarray; $db->reorganize(); untie($db); chmod($permission,"${databaseDirectory}${databaseFile}") or warn("compress_GDBM_webwork-database.pl: error", " Can't do chmod($permission, ${databaseDirectory}${databaseFile})");