/cssubmit.sh

https://github.com/madsolar8582/CSSUBMIT-Enhanced · Shell · 557 lines · 479 code · 20 blank · 58 comment · 27 complexity · f61a15b8ed942bfaad7d8dbd82c5fc25 MD5 · raw file

  1. #!/bin/bash
  2. clear
  3. ###############################################################################
  4. # GPL Notice
  5. ###############################################################################
  6. echo "CSSUBMIT version 1.6.3, Copyright (C) 2012 Madison Solarana"
  7. echo "This program is distributed in the hope that it will be useful,"
  8. echo "but WITHOUT ANY WARRANTY; without even the implied warranty of"
  9. echo "MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE."
  10. echo -e "See the GNU General Public License v2 for more details.\n"
  11. ###############################################################################
  12. # check to see if the command was called correctly
  13. ###############################################################################
  14. if [ $# -ne 3 ]; then
  15. echo "Usage: cssubmit course number section letter assignment number"
  16. echo "For example the command: cssubmit 53 a 3"
  17. echo "would be for the third assignment in CS53 Section A"
  18. echo "and for example the command: cssubmit 74 c 9"
  19. echo "would be for the ninth assignment in CS74 Section C"
  20. exit 1
  21. fi
  22. course=$(echo "$1" | grep -E "^[[:digit:]]+$")
  23. if [ $(echo ${#course}) -lt 1 ]; then
  24. echo "The course number you have entered is not in the proper format"
  25. echo "Please re-execute cssubmit with a valid course number"
  26. exit 1
  27. fi
  28. if [ $1 -lt 1 -o $1 -gt 499 ]; then
  29. echo "The course number you have entered is outside the CS Course Catalog"
  30. echo "This could be because the course number entered is too small or too large"
  31. echo "Please re-exectue cssubmit with a valid course number"
  32. exit 1
  33. fi
  34. section=$(echo "$2" | grep -E "^[[:lower:]]+$")
  35. if [ $(echo ${#section}) -gt 1 -o $(echo ${#section}) -lt 1 ]; then
  36. echo "The section letter you have entered is not in the proper format"
  37. echo "Sections are defined as a single letter(lower case): a-z"
  38. echo "Please re-execute cssubmit with a valid section letter"
  39. exit 1
  40. fi
  41. assignment=$(echo "$3" | grep -E "^[[:digit:]]+$")
  42. if [ $(echo ${#assignment}) -lt 1 ]; then
  43. echo "The assignment number you have entered is not in the proper format"
  44. echo "Assignments are defined as numbers: 0, 1, 2, etc."
  45. echo "Please re-execute cssubmit with a valid assignment number"
  46. exit 1
  47. fi
  48. ###############################################################################
  49. # compiling and executing
  50. ###############################################################################
  51. user_random=$RANDOM
  52. if [ $1 -eq 53 ]; then
  53. echo -e "\\033[35m >>>>> Choose a compiler(#): (1) - GNU GCC, (2) - Clang-LLVM, (3) - Intel ICC\\033[0m"
  54. echo -e "\\033[35m > \\033[0m\c" && read compilerchoice
  55. compiler=$(echo "$compilerchoice" | grep -E "^[1-3]+$")
  56. if [ $(echo ${#compiler}) -gt 1 -o $(echo ${#compiler}) -lt 1 ]; then
  57. echo -e "\033[31m >>>>> Submit was unable to compile your program.\033[0m"
  58. echo -e "\033[31m >>>>> Make sure to pick a valid input(1 - 3).\033[0m"
  59. echo -e "\033[31m >>>>> Bailing out...\033[0m"
  60. exit 1
  61. fi
  62. if [ $compilerchoice -eq 1 ]; then
  63. echo -e "\033[35m >>>>> Submit will now attempt to compile your program files.\033[0m"
  64. script -c "g++ -Wall -W -pedantic-errors *.cpp -o driver"$user_random -q
  65. elif [ $compilerchoice -eq 2 ]; then
  66. echo -e "\033[35m >>>>> Submit will now attempt to compile your program files.\033[0m"
  67. script -c "clang++ -Wall -W -pedantic-errors *.cpp -o driver"$user_random -q
  68. elif [ $compilerchoice -eq 3 ]; then
  69. echo -e "\033[35m >>>>> Submit will now attempt to compile your program files.\033[0m"
  70. script -c "icpc -Wall -Werror *.cpp -o driver"$user_random -q
  71. fi
  72. if [ -f driver$user_random ]; then
  73. echo -e "\033[32m >>>>> Submit was successfully able to compile your program.\033[0m"
  74. echo -e "\033[35m >>>>> Submit will now attempt to execute your program.\033[0m"
  75. script -c "./driver"$user_random -q -a
  76. else
  77. echo -e "\033[31m >>>>> Submit was unable to compile your program.\033[0m"
  78. fi
  79. elif [ $1 -eq 73 ]; then
  80. echo -e "\\033[35m >>>>> Choose a compiler(#): (1) - GNU GFortran, (2) - Intel iFort\\033[0m"
  81. echo -e "\\033[35m > \\033[0m\c" && read compilerchoice
  82. compiler=$(echo "$compilerchoice" | grep -E "^[1-2]+$")
  83. if [ $(echo ${#compiler}) -gt 1 -o $(echo ${#compiler}) -lt 1 ]; then
  84. echo -e "\033[31m >>>>> Submit was unable to compile your program.\033[0m"
  85. echo -e "\033[31m >>>>> Make sure to pick a valid input(1 - 2).\033[0m"
  86. echo -e "\033[31m >>>>> Bailing out...\033[0m"
  87. exit 1
  88. fi
  89. if [ $compilerchoice -eq 1 ]; then
  90. echo -e "\033[35m >>>>> Submit will now attempt to compile your program files.\033[0m"
  91. script -c "gfortran -Wall -pedantic-errors -Werror *.f90 -o driver"$user_random -q
  92. elif [ $compilerchoice -eq 2 ]; then
  93. echo -e "\033[35m >>>>> Submit will now attempt to compile your program files.\033[0m"
  94. script -c "ifort -warn all -warn errors *.f90 -o driver"$user_random -q
  95. fi
  96. if [ -f driver$user_random ]; then
  97. echo -e "\033[32m >>>>> Submit was successfully able to compile your program.\033[0m"
  98. echo -e "\033[35m >>>>> Submit will now attempt to execute your program.\033[0m"
  99. script -c "./driver"$user_random -q -a
  100. else
  101. echo -e "\033[31m >>>>> Submit was unable to compile your program.\033[0m"
  102. fi
  103. elif [ $1 -eq 74 ]; then
  104. echo -e "\\033[35m >>>>> Choose a compiler(#): (1) - GNU GCC, (2) - Clang-LLVM, (3) - Intel ICC\\033[0m"
  105. echo -e "\\033[35m > \\033[0m\c" && read compilerchoice
  106. compiler=$(echo "$compilerchoice" | grep -E "^[1-3]+$")
  107. if [ $(echo ${#compiler}) -gt 1 -o $(echo ${#compiler}) -lt 1 ]; then
  108. echo -e "\033[31m >>>>> Submit was unable to compile your program.\033[0m"
  109. echo -e "\033[31m >>>>> Make sure to pick a valid input(1 - 3).\033[0m"
  110. echo -e "\033[31m >>>>> Bailing out...\033[0m"
  111. exit 1
  112. fi
  113. if [ $compilerchoice -eq 1 ]; then
  114. echo -e "\033[35m >>>>> Submit will now attempt to compile your program files.\033[0m"
  115. script -c "g++ -Wall -W -pedantic-errors *.cpp -o driver"$user_random -q
  116. elif [ $compilerchoice -eq 2 ]; then
  117. echo -e "\033[35m >>>>> Submit will now attempt to compile your program files.\033[0m"
  118. script -c "clang++ -Wall -W -pedantic-errors *.cpp -o driver"$user_random -q
  119. elif [ $compilerchoice -eq 3 ]; then
  120. echo -e "\033[35m >>>>> Submit will now attempt to compile your program files.\033[0m"
  121. script -c "icpc -Wall -Werror *.cpp -o driver"$user_random -q
  122. fi
  123. if [ -f driver$user_random ]; then
  124. echo -e "\033[32m >>>>> Submit was successfully able to compile your program.\033[0m"
  125. echo -e "\033[35m >>>>> Submit will now attempt to execute your program.\033[0m"
  126. script -c "./driver"$user_random -q -a
  127. else
  128. echo -e "\033[31m >>>>> Submit was unable to compile your program.\033[0m"
  129. fi
  130. elif [ $1 -eq 153 ]; then
  131. echo -e "\\033[35m >>>>> Choose a compiler(#): (1) - GNU GCC, (2) - Clang-LLVM, (3) - Intel ICC\\033[0m"
  132. echo -e "\\033[35m > \\033[0m\c" && read compilerchoice
  133. compiler=$(echo "$compilerchoice" | grep -E "^[1-3]+$")
  134. if [ $(echo ${#compiler}) -gt 1 -o $(echo ${#compiler}) -lt 1 ]; then
  135. echo -e "\033[31m >>>>> Submit was unable to compile your program.\033[0m"
  136. echo -e "\033[31m >>>>> Make sure to pick a valid input(1 - 3).\033[0m"
  137. echo -e "\033[31m >>>>> Bailing out...\033[0m"
  138. exit 1
  139. fi
  140. if [ $compilerchoice -eq 1 ]; then
  141. echo -e "\033[35m >>>>> Submit will now attempt to compile your program files.\033[0m"
  142. script -c "g++ -Wall -W -pedantic-errors *.cpp -I/usr/local/include -L/usr/local/lib -lcppunit -ldl -o driver"$user_random -q
  143. elif [ $compilerchoice -eq 2 ]; then
  144. echo -e "\033[35m >>>>> Submit will now attempt to compile your program files.\033[0m"
  145. script -c "clang++ -Wall -W -pedantic-errors *.cpp -I/usr/local/include -L/usr/local/lib -lcppunit -ldl -o driver"$user_random -q
  146. elif [ $compilerchoice -eq 3 ]; then
  147. echo -e "\033[35m >>>>> Submit will now attempt to compile your program files.\033[0m"
  148. script -c "icpc -Wall -Werror *.cpp -I/usr/local/include -L/usr/local/lib -lcppunit -ldl -o driver"$user_random -q
  149. fi
  150. if [ -f driver$user_random ]; then
  151. echo -e "\033[32m >>>>> Submit was successfully able to compile your program.\033[0m"
  152. echo -e "\033[35m >>>>> Submit will now attempt to execute your program.\033[0m"
  153. script -c "valgrind ./driver"$user_random -q -a
  154. else
  155. echo -e "\033[31m >>>>> Submit was unable to compile your program.\033[0m"
  156. fi
  157. fi
  158. ###############################################################################
  159. # making a list of the files to copy to the server
  160. ###############################################################################
  161. user_id=$(id -un)
  162. mkdir $user_id$user_random
  163. if [ -f typescript ]; then
  164. head -n 700 typescript > student_output
  165. fi
  166. cp student_output $user_id$user_random/ 2> /dev/null
  167. ###############################################################################
  168. # C-Based Language Files and Headers
  169. ###############################################################################
  170. cp *.c $user_id$user_random/ 2> /dev/null
  171. cp *.i $user_id$user_random/ 2> /dev/null
  172. cp *.ii $user_id$user_random/ 2> /dev/null
  173. cp *.m $user_id$user_random/ 2> /dev/null #Also MATLAB Files
  174. cp *.mm $user_id$user_random/ 2> /dev/null
  175. cp *.M $user_id$user_random/ 2> /dev/null
  176. cp *.mii $user_id$user_random/ 2> /dev/null
  177. cp *.h $user_id$user_random/ 2> /dev/null
  178. cp *.cpp $user_id$user_random/ 2> /dev/null
  179. cp *.hpp $user_id$user_random/ 2> /dev/null
  180. cp *.cp $user_id$user_random/ 2> /dev/null
  181. cp *.cxx $user_id$user_random/ 2> /dev/null
  182. cp *.CPP $user_id$user_random/ 2> /dev/null
  183. cp *.c++ $user_id$user_random/ 2> /dev/null
  184. cp *.C $user_id$user_random/ 2> /dev/null
  185. cp *.hh $user_id$user_random/ 2> /dev/null
  186. cp *.H $user_id$user_random/ 2> /dev/null
  187. cp *.hp $user_id$user_random/ 2> /dev/null
  188. cp *.hxx $user_id$user_random/ 2> /dev/null
  189. cp *.HPP $user_id$user_random/ 2> /dev/null
  190. cp *.h++ $user_id$user_random/ 2> /dev/null
  191. cp *.tcc $user_id$user_random/ 2> /dev/null
  192. ###############################################################################
  193. # FORTRAN Language Files
  194. ###############################################################################
  195. cp *.f $user_id$user_random/ 2> /dev/null
  196. cp *.for $user_id$user_random/ 2> /dev/null
  197. cp *.FOR $user_id$user_random/ 2> /dev/null
  198. cp *.F $user_id$user_random/ 2> /dev/null
  199. cp *.fpp $user_id$user_random/ 2> /dev/null
  200. cp *.FPP $user_id$user_random/ 2> /dev/null
  201. cp *.f77 $user_id$user_random/ 2> /dev/null
  202. cp *.f90 $user_id$user_random/ 2> /dev/null
  203. cp *.f95 $user_id$user_random/ 2> /dev/null
  204. cp *.f03 $user_id$user_random/ 2> /dev/null
  205. cp *.f08 $user_id$user_random/ 2> /dev/null
  206. cp *.F77 $user_id$user_random/ 2> /dev/null
  207. cp *.F90 $user_id$user_random/ 2> /dev/null
  208. cp *.F95 $user_id$user_random/ 2> /dev/null
  209. cp *.F03 $user_id$user_random/ 2> /dev/null
  210. cp *.F08 $user_id$user_random/ 2> /dev/null
  211. cp *.i77 $user_id$user_random/ 2> /dev/null
  212. cp *.i90 $user_id$user_random/ 2> /dev/null
  213. cp *.i95 $user_id$user_random/ 2> /dev/null
  214. cp *.i03 $user_id$user_random/ 2> /dev/null
  215. cp *.i08 $user_id$user_random/ 2> /dev/null
  216. cp *.I77 $user_id$user_random/ 2> /dev/null
  217. cp *.I90 $user_id$user_random/ 2> /dev/null
  218. cp *.I95 $user_id$user_random/ 2> /dev/null
  219. cp *.I03 $user_id$user_random/ 2> /dev/null
  220. cp *.I08 $user_id$user_random/ 2> /dev/null
  221. cp *.ftn $user_id$user_random/ 2> /dev/null
  222. cp *.FTN $user_id$user_random/ 2> /dev/null
  223. ###############################################################################
  224. # Assembly Files
  225. ###############################################################################
  226. cp *.s $user_id$user_random/ 2> /dev/null
  227. cp *.sx $user_id$user_random/ 2> /dev/null
  228. cp *.S $user_id$user_random/ 2> /dev/null
  229. cp *.asm $user_id$user_random/ 2> /dev/null
  230. cp *.ASM $user_id$user_random/ 2> /dev/null
  231. ###############################################################################
  232. # Scripts
  233. ###############################################################################
  234. cp *.sh $user_id$user_random/ 2> /dev/null
  235. cp *.csh $user_id$user_random/ 2> /dev/null
  236. cp *.zsh $user_id$user_random/ 2> /dev/null
  237. cp *.ksh $user_id$user_random/ 2> /dev/null
  238. cp *.bash $user_id$user_random/ 2> /dev/null
  239. cp *.tcsh $user_id$user_random/ 2> /dev/null
  240. cp *.command $user_id$user_random/ 2> /dev/null
  241. ###############################################################################
  242. # Other Languages
  243. ###############################################################################
  244. cp *.pl $user_id$user_random/ 2> /dev/null #Also Perl Files
  245. cp *.ph $user_id$user_random/ 2> /dev/null
  246. cp *.pm $user_id$user_random/ 2> /dev/null
  247. cp *.pro $user_id$user_random/ 2> /dev/null
  248. cp *.py $user_id$user_random/ 2> /dev/null
  249. cp *.pyc $user_id$user_random/ 2> /dev/null
  250. cp *.pyo $user_id$user_random/ 2> /dev/null
  251. cp *.pyw $user_id$user_random/ 2> /dev/null
  252. cp *.pyd $user_id$user_random/ 2> /dev/null
  253. cp *.python $user_id$user_random/ 2> /dev/null
  254. cp *.rpy $user_id$user_random/ 2> /dev/null
  255. cp *.lisp $user_id$user_random/ 2> /dev/null
  256. cp *.lsp $user_id$user_random/ 2> /dev/null
  257. cp *.rb $user_id$user_random/ 2> /dev/null
  258. cp *.rbw $user_id$user_random/ 2> /dev/null
  259. cp *.rbx $user_id$user_random/ 2> /dev/null
  260. cp *.ruby $user_id$user_random/ 2> /dev/null
  261. cp *.go $user_id$user_random/ 2> /dev/null #Go (Google)
  262. cp *.clj $user_id$user_random/ 2> /dev/null
  263. cp *.ml $user_id$user_random/ 2> /dev/null
  264. cp *.mli $user_id$user_random/ 2> /dev/null
  265. cp *.cmi $user_id$user_random/ 2> /dev/null
  266. cp *.cmo $user_id$user_random/ 2> /dev/null
  267. cp *.cma $user_id$user_random/ 2> /dev/null
  268. cp *.cmx $user_id$user_random/ 2> /dev/null
  269. cp *.cmxa $user_id$user_random/ 2> /dev/null
  270. cp *.erl $user_id$user_random/ 2> /dev/null
  271. cp *.yrl $user_id$user_random/ 2> /dev/null
  272. cp *.hrl $user_id$user_random/ 2> /dev/null
  273. cp *.rel $user_id$user_random/ 2> /dev/null
  274. cp *.idl $user_id$user_random/ 2> /dev/null
  275. cp *.asn1 $user_id$user_random/ 2> /dev/null
  276. cp *.asn1db $user_id$user_random/ 2> /dev/null
  277. cp *.mib $user_id$user_random/ 2> /dev/null
  278. cp *.cs $user_id$user_random/ 2> /dev/null
  279. cp *.vb $user_id$user_random/ 2> /dev/null
  280. cp *.vbs $user_id$user_random/ 2> /dev/null
  281. cp *.jsl $user_id$user_random/ 2> /dev/null
  282. cp *.cbl $user_id$user_random/ 2> /dev/null
  283. cp *.cob $user_id$user_random/ 2> /dev/null
  284. cp *.cpy $user_id$user_random/ 2> /dev/null
  285. cp *.cobol $user_id$user_random/ 2> /dev/null
  286. cp *.scala $user_id$user_random/ 2> /dev/null
  287. cp *.d $user_id$user_random/ 2> /dev/null
  288. cp *.hs $user_id$user_random/ 2> /dev/null
  289. cp *.lhs $user_id$user_random/ 2> /dev/null
  290. cp *.lua $user_id$user_random/ 2> /dev/null
  291. cp *.groovy $user_id$user_random/ 2> /dev/null
  292. cp *.gvy $user_id$user_random/ 2> /dev/null
  293. cp *.gy $user_id$user_random/ 2> /dev/null
  294. cp *.gsh $user_id$user_random/ 2> /dev/null
  295. cp *.rs $user_id$user_random/ 2> /dev/null
  296. cp *.rc $user_id$user_random/ 2> /dev/null
  297. cp *.adb $user_id$user_random/ 2> /dev/null
  298. cp *.ads $user_id$user_random/ 2> /dev/null
  299. cp *.scm $user_id$user_random/ 2> /dev/null
  300. cp *.ss $user_id$user_random/ 2> /dev/null
  301. ###############################################################################
  302. # Text, Data, & Parser Files
  303. ###############################################################################
  304. cp *.ps $user_id$user_random/ 2> /dev/null
  305. cp *.ppt $user_id$user_random/ 2> /dev/null
  306. cp *.pptx $user_id$user_random/ 2> /dev/null
  307. cp *.pptm $user_id$user_random/ 2> /dev/null
  308. cp *.pot $user_id$user_random/ 2> /dev/null
  309. cp *.potm $user_id$user_random/ 2> /dev/null
  310. cp *.potx $user_id$user_random/ 2> /dev/null
  311. cp *.pps $user_id$user_random/ 2> /dev/null
  312. cp *.ppsm $user_id$user_random/ 2> /dev/null
  313. cp *.ppsx $user_id$user_random/ 2> /dev/null
  314. cp *.sldm $user_id$user_random/ 2> /dev/null
  315. cp *.sldx $user_id$user_random/ 2> /dev/null
  316. cp *.doc $user_id$user_random/ 2> /dev/null
  317. cp *.docx $user_id$user_random/ 2> /dev/null
  318. cp *.docm $user_id$user_random/ 2> /dev/null
  319. cp *.dot $user_id$user_random/ 2> /dev/null
  320. cp *.dotm $user_id$user_random/ 2> /dev/null
  321. cp *.dotx $user_id$user_random/ 2> /dev/null
  322. cp *.xls $user_id$user_random/ 2> /dev/null
  323. cp *.xlsx $user_id$user_random/ 2> /dev/null
  324. cp *.xlsm $user_id$user_random/ 2> /dev/null
  325. cp *.xlsb $user_id$user_random/ 2> /dev/null
  326. cp *.xl $user_id$user_random/ 2> /dev/null
  327. cp *.xlm $user_id$user_random/ 2> /dev/null
  328. cp *.xlt $user_id$user_random/ 2> /dev/null
  329. cp *.xltm $user_id$user_random/ 2> /dev/null
  330. cp *.xltx $user_id$user_random/ 2> /dev/null
  331. cp *.xlw $user_id$user_random/ 2> /dev/null
  332. cp *.pdf $user_id$user_random/ 2> /dev/null
  333. cp *.pages $user_id$user_random/ 2> /dev/null
  334. cp *.numbers $user_id$user_random/ 2> /dev/null
  335. cp *.key $user_id$user_random/ 2> /dev/null
  336. cp *.odt $user_id$user_random/ 2> /dev/null
  337. cp *.ott $user_id$user_random/ 2> /dev/null
  338. cp *.ods $user_id$user_random/ 2> /dev/null
  339. cp *.ots $user_id$user_random/ 2> /dev/null
  340. cp *.odp $user_id$user_random/ 2> /dev/null
  341. cp *.otp $user_id$user_random/ 2> /dev/null
  342. cp *.wpd $user_id$user_random/ 2> /dev/null
  343. cp *.qpw $user_id$user_random/ 2> /dev/null
  344. cp *.shw $user_id$user_random/ 2> /dev/null
  345. cp *.pdx $user_id$user_random/ 2> /dev/null
  346. cp *.txt $user_id$user_random/ 2> /dev/null
  347. cp *.text $user_id$user_random/ 2> /dev/null
  348. cp *.rtf $user_id$user_random/ 2> /dev/null
  349. cp *.rtfd $user_id$user_random/ 2> /dev/null
  350. cp *.dat $user_id$user_random/ 2> /dev/null
  351. cp *.csv $user_id$user_random/ 2> /dev/null
  352. cp *.xml $user_id$user_random/ 2> /dev/null
  353. cp *.l $user_id$user_random/ 2> /dev/null #Also Lisp Files
  354. cp *.ll $user_id$user_random/ 2> /dev/null
  355. cp *.lex $user_id$user_random/ 2> /dev/null
  356. cp *.y $user_id$user_random/ 2> /dev/null
  357. cp *.yy $user_id$user_random/ 2> /dev/null
  358. cp *.epub $user_id$user_random/ 2> /dev/null
  359. cp *.mobi $user_id$user_random/ 2> /dev/null
  360. cp *.makefile $user_id$user_random/ 2> /dev/null
  361. cp *.MAKEFILE $user_id$user_random/ 2> /dev/null
  362. cp *.Makefile $user_id$user_random/ 2> /dev/null
  363. cp *.MakeFile $user_id$user_random/ 2> /dev/null
  364. cp *.md $user_id$user_random/ 2> /dev/null
  365. cp *.markdown $user_id$user_random/ 2> /dev/null
  366. cp *.mdown $user_id$user_random/ 2> /dev/null
  367. cp *.mdwn $user_id$user_random/ 2> /dev/null
  368. cp *.mpp $user_id$user_random/ 2> /dev/null
  369. cp *.mpt $user_id$user_random/ 2> /dev/null
  370. cp *.mpd $user_id$user_random/ 2> /dev/null
  371. cp *.wps $user_id$user_random/ 2> /dev/null
  372. cp *.xps $user_id$user_random/ 2> /dev/null
  373. cp *.pub $user_id$user_random/ 2> /dev/null
  374. cp *.puz $user_id$user_random/ 2> /dev/null
  375. cp *.vsd $user_id$user_random/ 2> /dev/null
  376. cp *.vss $user_id$user_random/ 2> /dev/null
  377. cp *.vst $user_id$user_random/ 2> /dev/null
  378. cp *.vsw $user_id$user_random/ 2> /dev/null
  379. cp *.vdx $user_id$user_random/ 2> /dev/null
  380. cp *.vsx $user_id$user_random/ 2> /dev/null
  381. cp *.vtx $user_id$user_random/ 2> /dev/null
  382. cp *.one $user_id$user_random/ 2> /dev/null
  383. cp *.onepkg $user_id$user_random/ 2> /dev/null
  384. cp *.xsf $user_id$user_random/ 2> /dev/null
  385. cp *.xsn $user_id$user_random/ 2> /dev/null
  386. cp *.xsd $user_id$user_random/ 2> /dev/null
  387. cp *.rpt $user_id$user_random/ 2> /dev/null
  388. cp *.rdlc $user_id$user_random/ 2> /dev/null
  389. cp *.res $user_id$user_random/ 2> /dev/null
  390. cp *.resx $user_id$user_random/ 2> /dev/null
  391. cp *.cd $user_id$user_random/ 2> /dev/null
  392. cp *.config $user_id$user_random/ 2> /dev/null
  393. cp *.cfg $user_id$user_random/ 2> /dev/null
  394. cp *.wsf $user_id$user_random/ 2> /dev/null
  395. ###############################################################################
  396. # SQL & SQLite Files
  397. ###############################################################################
  398. cp *.sql $user_id$user_random/ 2> /dev/null
  399. cp *.cls $user_id$user_random/ 2> /dev/null #Also LaTeX Files
  400. cp *.db-journal $user_id$user_random/ 2> /dev/null
  401. cp *.db3 $user_id$user_random/ 2> /dev/null
  402. cp *.sqlite-shm $user_id$user_random/ 2> /dev/null
  403. cp *.sqlite-wal $user_id$user_random/ 2> /dev/null
  404. cp *.sqlite3 $user_id$user_random/ 2> /dev/null
  405. cp *.sqlite3-journal $user_id$user_random/ 2> /dev/null
  406. cp *.sqlitedb $user_id$user_random/ 2> /dev/null
  407. cp *.sqlite $user_id$user_random/ 2> /dev/null
  408. cp *.mdf $user_id$user_random/ 2> /dev/null
  409. ###############################################################################
  410. # TeX & LaTeX Files
  411. ###############################################################################
  412. cp *.aux $user_id$user_random/ 2> /dev/null
  413. cp *.bibtex $user_id$user_random/ 2> /dev/null
  414. cp *.dev $user_id$user_random/ 2> /dev/null
  415. cp *.dtx $user_id$user_random/ 2> /dev/null
  416. cp *.dvi $user_id$user_random/ 2> /dev/null
  417. cp *.fd $user_id$user_random/ 2> /dev/null
  418. cp *.fmt $user_id$user_random/ 2> /dev/null
  419. cp *.glo $user_id$user_random/ 2> /dev/null
  420. cp *.hlx $user_id$user_random/ 2> /dev/null
  421. cp *.idx $user_id$user_random/ 2> /dev/null
  422. cp *.ind $user_id$user_random/ 2> /dev/null
  423. cp *.ist $user_id$user_random/ 2> /dev/null
  424. cp *.lat $user_id$user_random/ 2> /dev/null
  425. cp *.latex $user_id$user_random/ 2> /dev/null
  426. cp *.lof $user_id$user_random/ 2> /dev/null
  427. cp *.lot $user_id$user_random/ 2> /dev/null
  428. cp *.lp $user_id$user_random/ 2> /dev/null
  429. cp *.lpx $user_id$user_random/ 2> /dev/null
  430. cp *.ltx $user_id$user_random/ 2> /dev/null
  431. cp *.mf $user_id$user_random/ 2> /dev/null
  432. cp *.odvi $user_id$user_random/ 2> /dev/null
  433. cp *.pk $user_id$user_random/ 2> /dev/null
  434. cp *.pkt $user_id$user_random/ 2> /dev/null
  435. cp *.pxl $user_id$user_random/ 2> /dev/null
  436. cp *.sty $user_id$user_random/ 2> /dev/null
  437. cp *.tex $user_id$user_random/ 2> /dev/null
  438. cp *.texi $user_id$user_random/ 2> /dev/null
  439. cp *.texinfo $user_id$user_random/ 2> /dev/null
  440. cp *.tfm $user_id$user_random/ 2> /dev/null
  441. cp *.tm $user_id$user_random/ 2> /dev/null
  442. cp *.toc $user_id$user_random/ 2> /dev/null
  443. cp *.vf $user_id$user_random/ 2> /dev/null
  444. cp *.vpl $user_id$user_random/ 2> /dev/null
  445. cp *.xfi $user_id$user_random/ 2> /dev/null
  446. ###############################################################################
  447. # Java Files
  448. ###############################################################################
  449. cp *.class $user_id$user_random/ 2> /dev/null
  450. cp *.ear $user_id$user_random/ 2> /dev/null
  451. cp *.war $user_id$user_random/ 2> /dev/null
  452. cp *.jar $user_id$user_random/ 2> /dev/null
  453. cp *.apk $user_id$user_random/ 2> /dev/null
  454. cp *.js $user_id$user_random/ 2> /dev/null
  455. cp *.java $user_id$user_random/ 2> /dev/null
  456. cp *.jsp $user_id$user_random/ 2> /dev/null
  457. ###############################################################################
  458. # Web Files
  459. ###############################################################################
  460. cp *.html $user_id$user_random/ 2> /dev/null
  461. cp *.htm $user_id$user_random/ 2> /dev/null
  462. cp *.xhtml $user_id$user_random/ 2> /dev/null
  463. cp *.xht $user_id$user_random/ 2> /dev/null
  464. cp *.mht $user_id$user_random/ 2> /dev/null
  465. cp *.mhtml $user_id$user_random/ 2> /dev/null
  466. cp *.asp $user_id$user_random/ 2> /dev/null
  467. cp *.aspx $user_id$user_random/ 2> /dev/null
  468. cp *.master $user_id$user_random/ 2> /dev/null
  469. cp *.ascx $user_id$user_random/ 2> /dev/null
  470. cp *.asax $user_id$user_random/ 2> /dev/null
  471. cp *.ashx $user_id$user_random/ 2> /dev/null
  472. cp *.cgi $user_id$user_random/ 2> /dev/null
  473. cp *.php $user_id$user_random/ 2> /dev/null
  474. cp *.phtml $user_id$user_random/ 2> /dev/null
  475. cp *.shtml $user_id$user_random/ 2> /dev/null
  476. cp *.stm $user_id$user_random/ 2> /dev/null
  477. cp *.atom $user_id$user_random/ 2> /dev/null
  478. cp *.rss $user_id$user_random/ 2> /dev/null
  479. cp *.css $user_id$user_random/ 2> /dev/null
  480. cp *.xslt $user_id$user_random/ 2> /dev/null
  481. cp *.xsl $user_id$user_random/ 2> /dev/null
  482. cp *.rhtml $user_id$user_random/ 2> /dev/null
  483. cp *.sitemap $user_id$user_random/ 2> /dev/null
  484. ###############################################################################
  485. # Archive Files
  486. ###############################################################################
  487. cp *.bz $user_id$user_random/ 2> /dev/null
  488. cp *.bz2 $user_id$user_random/ 2> /dev/null
  489. cp *.bza $user_id$user_random/ 2> /dev/null
  490. cp *.bzip2 $user_id$user_random/ 2> /dev/null
  491. cp *.bzp $user_id$user_random/ 2> /dev/null
  492. cp *.bzp2 $user_id$user_random/ 2> /dev/null
  493. cp *.lz $user_id$user_random/ 2> /dev/null
  494. cp *.lzma $user_id$user_random/ 2> /dev/null
  495. cp *.gz $user_id$user_random/ 2> /dev/null
  496. cp *.gzi $user_id$user_random/ 2> /dev/null
  497. cp *.gzip $user_id$user_random/ 2> /dev/null
  498. cp *.gza $user_id$user_random/ 2> /dev/null
  499. cp *.gtar $user_id$user_random/ 2> /dev/null
  500. cp *.tar $user_id$user_random/ 2> /dev/null
  501. cp *.tgz $user_id$user_random/ 2> /dev/null
  502. cp *.taz $user_id$user_random/ 2> /dev/null
  503. cp *.tbz $user_id$user_random/ 2> /dev/null
  504. cp *.tb2 $user_id$user_random/ 2> /dev/null
  505. cp *.tlz $user_id$user_random/ 2> /dev/null
  506. cp *.z $user_id$user_random/ 2> /dev/null
  507. cp *.Z $user_id$user_random/ 2> /dev/null
  508. cp *.zip $user_id$user_random/ 2> /dev/null
  509. cp *.zipx $user_id$user_random/ 2> /dev/null
  510. ###############################################################################
  511. # For Funsies: <http://lolcode.com/> LOLCODE is Bejujular
  512. ###############################################################################
  513. cp *.lol $user_id$user_random/ 2> /dev/null
  514. cp *.lols $user_id$user_random/ 2> /dev/null
  515. tar -cfz $user_id.tar.gz $user_id$user_random 1> /dev/null
  516. ###############################################################################
  517. # copying the files to the server
  518. ###############################################################################
  519. echo -e "\033[35m >>>>> Submit will now attempt to send your files to the server.\033[0m"
  520. echo "progress" > sftp_batch
  521. echo "put $user_id.tar.gz" >> sftp_batch
  522. echo "exit" >> sftp_batch
  523. sftp -o "batchmode no" -b sftp_batch $user_id@minersftp.mst.edu:/dfs/users/cpp/dropbox/$1/$2/$3/
  524. ###############################################################################
  525. # cleaning up
  526. ###############################################################################
  527. rm student_output 2> /dev/null
  528. rm typescript 2> /dev/null
  529. rm driver$user_random 2> /dev/null
  530. rm -rf $user_id$user_random 2> /dev/null
  531. rm $user_id.tar.gz 2> /dev/null
  532. rm sftp_batch 2> /dev/null
  533. ###############################################################################
  534. # finished
  535. ###############################################################################
  536. echo -e "\033[35m >>>>> Submit is complete.\033[0m"
  537. exit 0