# HG changeset patch # User Jittat Fakcharoenphol # Date 2010-04-24 09:50:18 # Node ID 384e1befe70e910d1271061edd1aa7afa5a4adbf # Parent f439789e790bb91f85ac1805c6e77466b25c7fe5 fix reimport bug when creating existing dirs diff --git a/import_problem b/import_problem --- a/import_problem +++ b/import_problem @@ -1,7 +1,6 @@ #!/usr/bin/ruby require 'erb' -require 'ftools' require 'fileutils' require File.join(File.dirname(__FILE__),'lib/import_helper') @@ -33,8 +32,8 @@ end def copy_testcase(importing_test_dir,fname,dir,i) - File.copy("#{importing_test_dir}/#{fname}.in", "#{input_filename(dir,i)}") - File.copy("#{importing_test_dir}/#{fname}.sol", "#{answer_filename(dir,i)}") + FileUtils.cp("#{importing_test_dir}/#{fname}.in", "#{input_filename(dir,i)}") + FileUtils.cp("#{importing_test_dir}/#{fname}.sol", "#{answer_filename(dir,i)}") end def process_options(options) @@ -101,6 +100,12 @@ end while true end +def create_dir_if_not_exists(dir) + if ! FileTest.exists? dir + FileUtils.mkdir(dir) + end +end + def import_problem(ev_dir, problem, testcase_dir, num_testruns, raw_prefix, check_script, options) testrun_info = build_testrun_info_from_dir(num_testruns, testcase_dir, raw_prefix) @@ -114,9 +119,9 @@ # start working puts "creating directories" - File.makedirs("#{problem_dir}") - File.makedirs("#{problem_dir}/script") - File.makedirs("#{problem_dir}/test_cases") + create_dir_if_not_exists("#{problem_dir}") + create_dir_if_not_exists("#{problem_dir}/script") + create_dir_if_not_exists("#{problem_dir}/test_cases") puts "copying testcases" @@ -133,7 +138,7 @@ puts "copy #{testcase_fname} to #{testcase_num}" - File.makedirs("#{problem_dir}/test_cases/#{testcase_num}") + create_dir_if_not_exists("#{problem_dir}/test_cases/#{testcase_num}") copy_testcase("#{testcase_dir}",testcase_fname,"#{problem_dir}/test_cases/#{testcase_num}",testcase_num) num_testcases += 1 @@ -164,14 +169,14 @@ File.chmod(0755,"#{problem_dir}/script/check") - File.copy("#{check_script_fname}", "#{problem_dir}/script/#{script_name}") + FileUtils.cp("#{check_script_fname}", "#{problem_dir}/script/#{script_name}") else if File.exists?(SCRIPT_DIR + "/templates/check.#{check_script}") check_script_fname = SCRIPT_DIR + "/templates/check.#{check_script}" else check_script_fname = check_script end - File.copy("#{check_script_fname}", "#{problem_dir}/script/check") + FileUtils.cp("#{check_script_fname}", "#{problem_dir}/script/check") end # generating test_request directory @@ -186,10 +191,10 @@ cfg_file.puts test_request_all_test_cfg.result cfg_file.close - File.copy("#{SCRIPT_DIR}/templates/check_empty", - "#{ev_dir}/test_request/#{problem}/script/check") - File.copy("#{SCRIPT_DIR}/templates/answer-1.txt", - "#{ev_dir}/test_request/#{problem}/test_cases/1") + FileUtils.cp("#{SCRIPT_DIR}/templates/check_empty", + "#{ev_dir}/test_request/#{problem}/script/check") + FileUtils.cp("#{SCRIPT_DIR}/templates/answer-1.txt", + "#{ev_dir}/test_request/#{problem}/test_cases/1") puts "done" end