#!/usr/bin/perl ## JJ, based on buildProblemSet.pl by W.K. Ziemer, 2001 ## ## This does a destroy and rebuild ## ## syntax: dandrprobset courseID setDefinition ## example: dandrprobset ma112 set1.def ## or ## syntax: dandrprobset setDefinition ## example: dandrprobset set1.def ## ## when inside the directory for a particular course use lib '/ud/webwork/base/system/cgi/cgi-scripts'; use webworkInit; use Global; use Auth; use TimeLocal; use strict; if(@ARGV==1) { my $cdir = `pwd`; chomp($cdir); my @parts = split '/', $cdir; @parts = reverse @parts; my $j; for $j (1..scalar(@parts)) { if($parts[$j-1] eq "templates") { $ARGV[1]=$ARGV[0]; $ARGV[0]=$parts[$j]; print "I think this course is ".$parts[$j]."\n\n"; } } } my $dodel=1; if(@ARGV==2){ &Global::getCourseEnvironment("$ARGV[0]"); my $scriptDirectory = getWebworkScriptDirectory; require "${scriptDirectory}$Global::DBglue_pl"; require "${scriptDirectory}$Global::buildProbSetTools"; my $method ='createNewPSVNs'; my $outputFormat='all_students'; if($dodel) { my $setNumber = $ARGV[1]; $setNumber =~ s/^set//; $setNumber =~ s/.def$//; my @PINs=&getAllProbSetKeysForSet($setNumber); print "Deleting problems in set $setNumber
\n"; my $PIN; my $PINcount = 0; foreach $PIN (@PINs) { &attachProbSetRecord($PIN); if (&deleteProbSetRecord($PIN)) { $PINcount++; } } } my $message = &buildProbSetDB($ARGV[0],$ARGV[1],$method,'',$outputFormat); print "$message\n"; }else{ print " syntax: buildProblemSet.pl courseID setDefinition\n example: buildProblemSet.pl ma112 set1.def\n"; exit(0); };