#!/usr/bin/perl ## W.K. Ziemer, 2001 ## ## modified by JJ -- if there is only one argument, deduce ## the course name from the current directory. This is particularly ## useful when run from a templates directory. ## ## This file is buildProblemSet.pl ## It provides command line functionality to problem set building ## with webwork 1.7 ## ## syntax: buildProblemSet.pl courseID setDefinition ## example: buildProblemSet.pl ma112 set1.def ## or ## syntax: buildProblemSet.pl setDefinition ## example: buildProblemSet.pl set1.def 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"; } } } 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'; 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); };