codersdojo 1.1.08 → 1.1.09
Sign up to get free protection for your applications and to get access to all the features.
- data/app/filename_formatter.rb +5 -0
- data/app/runner.rb +3 -2
- data/app/shell_process.rb +5 -0
- data/app/shell_wrapper.rb +6 -3
- metadata +4 -3
data/app/filename_formatter.rb
CHANGED
@@ -2,6 +2,7 @@ class FilenameFormatter
|
|
2
2
|
|
3
3
|
CODERSDOJO_WORKSPACE = ".codersdojo"
|
4
4
|
RESULT_FILE = "result.txt"
|
5
|
+
INFO_FILE = "info.yml"
|
5
6
|
STATE_DIR_PREFIX = "state_"
|
6
7
|
|
7
8
|
def self.state_dir_prefix
|
@@ -21,6 +22,10 @@ class FilenameFormatter
|
|
21
22
|
state_file state_dir, RESULT_FILE
|
22
23
|
end
|
23
24
|
|
25
|
+
def info_file state_dir
|
26
|
+
state_file state_dir, INFO_FILE
|
27
|
+
end
|
28
|
+
|
24
29
|
def state_file state_dir, file
|
25
30
|
"#{state_dir}/#{file}"
|
26
31
|
end
|
data/app/runner.rb
CHANGED
@@ -29,12 +29,13 @@ class Runner
|
|
29
29
|
return
|
30
30
|
end
|
31
31
|
Progress.end
|
32
|
-
|
33
|
-
result = TextConverter.new.remove_escape_sequences
|
32
|
+
process = @shell.execute @run_command
|
33
|
+
result = TextConverter.new.remove_escape_sequences process.output
|
34
34
|
state_dir = @filename_formatter.state_dir @session_id, @step
|
35
35
|
@shell.mkdir state_dir
|
36
36
|
@shell.cp @file, state_dir
|
37
37
|
@shell.write_file @filename_formatter.result_file(state_dir), result
|
38
|
+
@shell.write_file @filename_formatter.info_file(state_dir), "return_code: #{process.return_code}"
|
38
39
|
@step += 1
|
39
40
|
@previous_change_time = change_time
|
40
41
|
end
|
data/app/shell_wrapper.rb
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
require 'tempfile'
|
2
|
+
require 'shell_process'
|
2
3
|
|
3
4
|
class ShellWrapper
|
4
5
|
|
@@ -29,12 +30,14 @@ class ShellWrapper
|
|
29
30
|
end
|
30
31
|
|
31
32
|
def execute command
|
33
|
+
process = ShellProcess.new
|
32
34
|
redirect_stderr_to_stdout = "2>&1"
|
33
35
|
spec_pipe = IO.popen("#{command} #{redirect_stderr_to_stdout}", "r")
|
34
|
-
|
36
|
+
process.output = spec_pipe.read MAX_STDOUT_LENGTH
|
35
37
|
spec_pipe.close
|
36
|
-
|
37
|
-
|
38
|
+
process.return_code = $?
|
39
|
+
puts process.output unless process.output.nil?
|
40
|
+
process
|
38
41
|
end
|
39
42
|
|
40
43
|
def write_file filename, content
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: codersdojo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 1
|
5
5
|
prerelease: false
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 1
|
9
|
-
-
|
10
|
-
version: 1.1.
|
9
|
+
- 9
|
10
|
+
version: 1.1.09
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- CodersDojo-Team
|
@@ -54,6 +54,7 @@ files:
|
|
54
54
|
- app/scheduler.rb
|
55
55
|
- app/session_id_generator.rb
|
56
56
|
- app/shell_argument_exception.rb
|
57
|
+
- app/shell_process.rb
|
57
58
|
- app/shell_wrapper.rb
|
58
59
|
- app/state.rb
|
59
60
|
- app/state_reader.rb
|