#!/usr/bin/perl use POSIX; use strict; die "Usage: ./writeProcessScript.pl inputDir outputDir numFilesPerChunk workingDir\n" unless @ARGV == 4; my $scriptName = "runCharniakTests.sh"; my $inputDir = $ARGV[0]; my $outputDir = $ARGV[1]; my $numFilesPerChunk = $ARGV[2]; my $runDir = $ARGV[3]; my $errDir = $inputDir."_err"; my @fileList = `ls $inputDir`; my $numFiles = $#fileList + 1; my $maxNum = ceil($numFiles/$numFilesPerChunk); open (SCRIPT, ">$scriptName") or die "Can't open script file for output: $!\n"; #print setup print SCRIPT "#!/bin/bash\n\n"; my $numNotify = $maxNum; my $isFirst = "true"; my $numSent = 0; my $isLast = "false"; my $emailAddress = 'mssammon@uiuc.edu'; for(my $i = 0; $i < $maxNum; $i++) { if($i == ($maxNum - 1)) { $isLast = "true"; } my $stdOutLabel = "$errDir"."/subset$i.stdOut"; my $stdErrLabel = "$errDir"."/subset$i.stdErr"; my $notifyEntry = ""; if($numNotify >= $i) { $notifyEntry = "++notify-start ++notify-end -email $emailAddress"; $numSent++; } if("true" eq $isLast) { $notifyEntry = "++ notify-start ++notify-end -email $emailAddress"; } print SCRIPT "ufsub $runDir/processAcquaintData.pl -stdout $stdOutLabel -stderr $stdErrLabel -time 08:00:00 $notifyEntry $inputDir $outputDir $numFilesPerChunk $i\n\n"; }