# HG changeset patch # User jittat # Date 2009-10-05 14:16:22 # Node ID 3df292e1c18d003745a304ceb370f7ec2878cd60 # Parent b0f4f829e9146862d3735d4102daaa290c1dc95b added rename_problem script, fixed require error for dir_init git-svn-id: http://theory.cpe.ku.ac.th/grader/judge/trunk/scripts@420 6386c4cd-e34a-4fa8-8920-d93eb39b512e diff --git a/lib/engine.rb b/lib/engine.rb --- a/lib/engine.rb +++ b/lib/engine.rb @@ -1,6 +1,6 @@ require 'fileutils' require 'ftools' -require 'lib/dir_init' +require File.join(File.dirname(__FILE__),'dir_init') module Grader diff --git a/rename_problem b/rename_problem new file mode 100755 --- /dev/null +++ b/rename_problem @@ -0,0 +1,100 @@ +#!/usr/bin/env ruby + +ENVIRONMENT_DIRS = ['ev', 'ev-exam'] + +def config + Grader::Configuration.get_instance +end + +def rename_problem(old_problem_name, new_problem_name) + + if valid_problem_name(new_problem_name) + puts "Bad new problem name: #{new_problem_name}" + return + end + + problem = Problem.find_by_name(old_problem_name) + if problem==nil + puts "Problem #{old_problem_name} does not exist." + return + end + + puts "Problem: #{old_problem_name} -> #{new_problem_name}" + + ENVIRONMENT_DIRS.each do |dir| + problem_dir = File.join(GRADER_ROOT,'..',dir,old_problem_name) + new_problem_dir = File.join(GRADER_ROOT,'..',dir,new_problem_name) + + if FileTest.exists? problem_dir + puts "Moving #{problem_dir} to #{new_problem_dir}." + File.rename(problem_dir, new_problem_dir) + + tr_problem_dir = File.join(GRADER_ROOT,'..',dir, + 'test_request',old_problem_name) + new_tr_problem_dir = File.join(GRADER_ROOT,'..',dir, + 'test_request',new_problem_name) + File.rename(tr_problem_dir, new_tr_problem_dir) + end + end + + problem.name = new_problem_name + problem.save +end + +def usage + puts <