Description:
fix import dir bug git-svn-id: http://theory.cpe.ku.ac.th/grader/cli/trunk/scripts@14 6386c4cd-e34a-4fa8-8920-d93eb39b512e
Commit status:
[Not Reviewed]
References:
Comments:
0 Commit comments 0 Inline Comments
Unresolved TODOs:
There are no unresolved TODOs
Add another comment

r2:f854d6ed3319 - - 3 files changed: 3 inserted, 3 deleted

@@ -1,6 +1,6
1
1
2 # Rails app directory
2 # Rails app directory
3 RAILS_APP_DIR = "/home/jittat/web_grader"
3 RAILS_APP_DIR = "/home/jittat/web_grader"
4
4
5 # load the required environment file
5 # load the required environment file
6 - require "env_#{GRADER_ENV}.rb"
6 + require File.dirname(__FILE__) + "/env_#{GRADER_ENV}.rb"
@@ -65,45 +65,45
65 talk 'some hack on language'
65 talk 'some hack on language'
66 if language == 'cpp'
66 if language == 'cpp'
67 language = 'c++'
67 language = 'c++'
68 end
68 end
69
69
70 user_dir = "#{USER_RESULT_DIR}/#{user.login}"
70 user_dir = "#{USER_RESULT_DIR}/#{user.login}"
71 Dir.mkdir(user_dir) if !FileTest.exist?(user_dir)
71 Dir.mkdir(user_dir) if !FileTest.exist?(user_dir)
72
72
73 problem_out_dir = "#{user_dir}/#{problem.name}"
73 problem_out_dir = "#{user_dir}/#{problem.name}"
74 Dir.mkdir(problem_out_dir) if !FileTest.exist?(problem_out_dir)
74 Dir.mkdir(problem_out_dir) if !FileTest.exist?(problem_out_dir)
75
75
76 problem_home = "#{PROBLEMS_DIR}/#{problem.name}"
76 problem_home = "#{PROBLEMS_DIR}/#{problem.name}"
77 source_name = "#{problem.name}.#{lang_ext}"
77 source_name = "#{problem.name}.#{lang_ext}"
78
78
79 save_source(sub,problem_out_dir,source_name)
79 save_source(sub,problem_out_dir,source_name)
80 call_judge(problem_home,language,problem_out_dir,source_name)
80 call_judge(problem_home,language,problem_out_dir,source_name)
81 save_result(sub,read_result("#{problem_out_dir}/test-result"))
81 save_result(sub,read_result("#{problem_out_dir}/test-result"))
82 end
82 end
83
83
84 # reading environment
84 # reading environment
85 GRADER_ENV = 'exam'
85 GRADER_ENV = 'exam'
86 if ARGV.length > 1
86 if ARGV.length > 1
87 GRADER_ENV = ARGV[1]
87 GRADER_ENV = ARGV[1]
88 end
88 end
89 - require "environment.rb"
89 + require File.dirname(__FILE__) + "/environment.rb"
90
90
91 #main program
91 #main program
92
92
93 talk 'Reading rails environment'
93 talk 'Reading rails environment'
94
94
95 RAILS_ENV = 'development'
95 RAILS_ENV = 'development'
96 require RAILS_APP_DIR + '/config/environment'
96 require RAILS_APP_DIR + '/config/environment'
97
97
98 current_dir = `pwd`
98 current_dir = `pwd`
99
99
100 talk 'Grader queue'
100 talk 'Grader queue'
101 task = Task.find(:first, :order => 'created_at')
101 task = Task.find(:first, :order => 'created_at')
102 if task!=nil
102 if task!=nil
103 grade(task.submission_id)
103 grade(task.submission_id)
104 task.destroy
104 task.destroy
105 else
105 else
106 puts "No job"
106 puts "No job"
107 end
107 end
108
108
109
109
@@ -14,49 +14,49
14 def answer_filename(dir,i)
14 def answer_filename(dir,i)
15 "#{dir}/answer-#{i}.txt"
15 "#{dir}/answer-#{i}.txt"
16 end
16 end
17
17
18 def copy_testcase(importing_test_dir,dir,i)
18 def copy_testcase(importing_test_dir,dir,i)
19 system("cp #{importing_test_dir}/#{i}.in #{input_filename(dir,i)}")
19 system("cp #{importing_test_dir}/#{i}.in #{input_filename(dir,i)}")
20 system("cp #{importing_test_dir}/#{i}.sol #{answer_filename(dir,i)}")
20 system("cp #{importing_test_dir}/#{i}.sol #{answer_filename(dir,i)}")
21 end
21 end
22
22
23 def process_options(options)
23 def process_options(options)
24 i = 3
24 i = 3
25 while i<ARGV.length
25 while i<ARGV.length
26 if ARGV[i]=='-t'
26 if ARGV[i]=='-t'
27 options[:time_limit] = ARGV[i+1].to_i if ARGV.length>i+1
27 options[:time_limit] = ARGV[i+1].to_i if ARGV.length>i+1
28 i += 1
28 i += 1
29 end
29 end
30 if ARGV[i]=='-m'
30 if ARGV[i]=='-m'
31 options[:mem_limit] = ARGV[i+1].to_i if ARGV.length>i+1
31 options[:mem_limit] = ARGV[i+1].to_i if ARGV.length>i+1
32 i += 1
32 i += 1
33 end
33 end
34 i += 1
34 i += 1
35 end
35 end
36 end
36 end
37
37
38 - GRADER_DIR = "/home/jittat/grader/grader_ng"
38 + GRADER_DIR = File.dirname(__FILE__)
39
39
40 # print usage
40 # print usage
41 if ARGV.length < 3
41 if ARGV.length < 3
42 puts "using: import_task problem importing_testcase_dir number_of_testcase [options]"
42 puts "using: import_task problem importing_testcase_dir number_of_testcase [options]"
43 exit(127)
43 exit(127)
44 end
44 end
45
45
46 # processing arguments
46 # processing arguments
47 problem = ARGV[0]
47 problem = ARGV[0]
48 testcase_dir = ARGV[1]
48 testcase_dir = ARGV[1]
49 num_testcases = ARGV[2].to_i
49 num_testcases = ARGV[2].to_i
50
50
51 options = {:time_limit => 1, :mem_limit => 16}
51 options = {:time_limit => 1, :mem_limit => 16}
52 process_options(options)
52 process_options(options)
53
53
54 # start working
54 # start working
55 puts "creating directories"
55 puts "creating directories"
56
56
57 system("mkdir #{problem}")
57 system("mkdir #{problem}")
58 system("mkdir #{problem}/script")
58 system("mkdir #{problem}/script")
59 system("mkdir #{problem}/test_cases")
59 system("mkdir #{problem}/test_cases")
60 system("cp #{GRADER_DIR}/std-script/* #{problem}/script")
60 system("cp #{GRADER_DIR}/std-script/* #{problem}/script")
61
61
62 puts "copying testcases"
62 puts "copying testcases"
You need to be logged in to leave comments. Login now