Setup your cron job as follows:
#group submissions run ever 4 hours during last 2 weeks of classes (must run on student.cs)
00 0,4,8,12,16,20 21-30 11 * ssh -x student.cs "/u/isg/bin/group_mgr-process_group_txt_submissions group"
00 0,4,8,12,16,20 1-5 12 * ssh -x student.cs "/u/isg/bin/group_mgr-process_group_txt_submissions group"
The above job expects that there is an assignment called
group defined and that the only file accepted is a text file called
group.txt, the contents of which is simply the members of the group, each on one line.
The contents of your course's
.submitrc file filter should be something like this :
#!/bin/bash -
# ensure GNU commands on Solaris (and Linux)
export PATH=`/bin/showpath -PackageWarnings gnu standard`
#
# This program is called, as follows, for each file to be submitted
#
# file_filter <class> <asst_no> <username> <dir> <file>
#
class=${1}
asst_no=${2}
userid=`echo ${3} | cut -c1-8` # max 8 characters
dir=${4}
pathname=${5}
maxsize=1048576
if [ "`wc -c ${pathname} | sed -e 's/[ ]*\([0-9]*\).*/\1/g'`" -gt ${maxsize} ] ; then # file size > 1M ?
echo -e "\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo "file exceeds maximum size of ${maxsize} bytes. Check Content"
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
# file is rejected because output is generate
exit 0
fi
file=`basename ${pathname}`
case ${file} in
group.txt)
/u/isg/bin/group_mgr-submit_file_filter ${class} ${asst_no} ${userid}
;;
*txt)
# file ${pathname} | grep -q -i 'ascii\|english\|text\|empty'
# if [ "${?}" -ne 0 ] ; then # did not find text
# echo -e "\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
# echo "*txt files may only be in ASCII. Check Content"
# echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
# # file is rejected because output is generate
# exit 0
# fi
lineCount=`fold -w120 ${pathname} | wc -l`
maxlines=500
if [ ${asst_no} -ge 6 ] ; then # project gets more lines
maxlines=750
fi
if [ ${lineCount} -gt ${maxlines} ] ; then
echo -e "\n!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
echo "File \"${pathname}\" exceeds limit of ${maxlines} lines."
echo "Use \"fold -w120 ${pathname} | wc -l\" to double-check."
echo "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"
# file is rejected because output is generate
exit 0
fi
;;
*)
# accept file
;;
esac
exit 0
--
OmNafees - 22 Nov 2011