require_relative 'course' require_relative 'filesystem' module KGrader class CLI def initialize(dir) @fs = Filesystem.new dir end def list # TODO puts "[list]" end def roster(course, semester, rosterfile) Course.new(@fs, course).roster(semester).load rosterfile end def grade(course, semester, assignment, options = {}) # TODO # need to get default semester... semester ||= 'DEFAULT' task = Course.new(@fs, course).task semester, assignment task.grade options end def commit(course, semester, assignment, options = {}) # TODO semester ||= 'DEFAULT' task = Course.new(@fs, course).task semester, assignment task.commit options end def clean # TODO: also purge uncommitted grades reset_jail end def clobber # TODO: confirm reset_jail reset_desk end private def reset_jail FileUtils.rm_rf @fs.jail FileUtils.mkdir @fs.jail FileUtils.touch File.join(@fs.jail, '.gitkeep') end def reset_desk FileUtils.rm_rf Dir[File.join @fs.desk, '*', ''] end end end