scriptty 0.6.0-java → 0.7.0-java
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/VERSION +1 -1
- data/lib/scriptty/apps/capture_app.rb +4 -5
- data/lib/scriptty/apps/replay_app.rb +4 -5
- data/lib/scriptty/expect.rb +25 -8
- data/lib/scriptty/{apps/capture_app → net}/console.rb +1 -5
- data/lib/scriptty/{apps/capture_app → net}/password_prompt.rb +1 -5
- data/lib/scriptty/util/transcript/reader.rb +2 -0
- data/lib/scriptty/util/transcript/writer.rb +25 -0
- data/test/util/transcript/reader_test.rb +6 -0
- data/test/util/transcript/writer_test.rb +32 -0
- metadata +135 -135
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.
|
1
|
+
0.7.0
|
@@ -18,6 +18,8 @@
|
|
18
18
|
|
19
19
|
require 'optparse'
|
20
20
|
require 'scriptty/net/event_loop'
|
21
|
+
require 'scriptty/net/console'
|
22
|
+
require 'scriptty/net/password_prompt'
|
21
23
|
require 'scriptty/util/transcript/writer'
|
22
24
|
require 'scriptty/term'
|
23
25
|
require 'scriptty/screen_pattern'
|
@@ -54,11 +56,11 @@ module ScripTTY
|
|
54
56
|
@output_file = Util::Transcript::Writer.new(File.open(@options[:output], @options[:append] ? "a" : "w")) if @options[:output]
|
55
57
|
@output_file.info("--- Capture started #{Time.now} ---") if @output_file
|
56
58
|
@net.on_accept(@options[:console_addrs] || [], :multiple => true) do |conn|
|
57
|
-
p = PasswordPrompt.new(conn, "Console password: ")
|
59
|
+
p = ScripTTY::Net::PasswordPrompt.new(conn, "Console password: ")
|
58
60
|
p.authenticate { |password| password == @console_password }
|
59
61
|
p.on_fail { conn.write("Authentiation failed.\r\n") { conn.close } }
|
60
62
|
p.on_success {
|
61
|
-
@attached_consoles << Console.new(conn, self)
|
63
|
+
@attached_consoles << ScripTTY::Net::Console.new(conn, self)
|
62
64
|
@attached_consoles.each { |c| c.refresh! }
|
63
65
|
}
|
64
66
|
end
|
@@ -247,6 +249,3 @@ module ScripTTY
|
|
247
249
|
end
|
248
250
|
end
|
249
251
|
end
|
250
|
-
|
251
|
-
require 'scriptty/apps/capture_app/password_prompt'
|
252
|
-
require 'scriptty/apps/capture_app/console'
|
@@ -18,6 +18,8 @@
|
|
18
18
|
|
19
19
|
require 'optparse'
|
20
20
|
require 'scriptty/net/event_loop'
|
21
|
+
require 'scriptty/net/console'
|
22
|
+
require 'scriptty/net/password_prompt'
|
21
23
|
require 'scriptty/util/transcript/reader'
|
22
24
|
require 'scriptty/term'
|
23
25
|
require 'logger'
|
@@ -53,11 +55,11 @@ module ScripTTY
|
|
53
55
|
def main
|
54
56
|
@output_file = Util::Transcript::Writer.new(File.open(@options[:output], "w")) if @options[:output]
|
55
57
|
@net.on_accept(@options[:console_addrs] || [], :multiple => true) do |conn|
|
56
|
-
p =
|
58
|
+
p = ScripTTY::Net::PasswordPrompt.new(conn, "Console password: ")
|
57
59
|
p.authenticate { |password| password == @console_password }
|
58
60
|
p.on_fail { conn.write("Authentiation failed.\r\n") { conn.close } }
|
59
61
|
p.on_success {
|
60
|
-
@attached_consoles <<
|
62
|
+
@attached_consoles << ScripTTY::Net::Console.new(conn, self)
|
61
63
|
@attached_consoles.each { |c| c.refresh! }
|
62
64
|
}
|
63
65
|
end
|
@@ -224,6 +226,3 @@ module ScripTTY
|
|
224
226
|
end
|
225
227
|
end
|
226
228
|
end
|
227
|
-
|
228
|
-
require 'scriptty/apps/capture_app/password_prompt'
|
229
|
-
require 'scriptty/apps/capture_app/console'
|
data/lib/scriptty/expect.rb
CHANGED
@@ -27,11 +27,12 @@ module ScripTTY
|
|
27
27
|
class Expect
|
28
28
|
|
29
29
|
# Methods to export to Evaluator
|
30
|
-
EXPORTED_METHODS = Set.new [:init_term, :term, :connect, :screen, :expect, :on, :wait, :send, :match, :push_patterns, :pop_patterns, :exit, :eval_script_file, :eval_script_inline, :sleep, :set_timeout, :load_screens ]
|
30
|
+
EXPORTED_METHODS = Set.new [:init_term, :term, :connect, :screen, :expect, :on, :wait, :send, :send_password, :capture, :match, :push_patterns, :pop_patterns, :exit, :eval_script_file, :eval_script_inline, :sleep, :set_timeout, :load_screens ]
|
31
31
|
|
32
32
|
attr_reader :term # The terminal emulation object
|
33
33
|
|
34
|
-
attr_reader :
|
34
|
+
attr_reader :capture # The last non-background captured fields. For a ScreenPattern match, this is a Hash of fields. For a String or Regexp match, this is a MatchData object.
|
35
|
+
alias match capture # "match" is the deprecated name for "capture"
|
35
36
|
|
36
37
|
attr_accessor :transcript_writer # Set this to an instance of ScripTTY::Util::Transcript::Writer
|
37
38
|
|
@@ -52,6 +53,16 @@ module ScripTTY
|
|
52
53
|
@screen_patterns = {}
|
53
54
|
end
|
54
55
|
|
56
|
+
# Get instance variable from the Evaluator
|
57
|
+
def [](varname)
|
58
|
+
@evaluator.instance_variable_get("@#{varname}")
|
59
|
+
end
|
60
|
+
|
61
|
+
# Set an instance variable on the Evaluator
|
62
|
+
def []=(varname, value)
|
63
|
+
@evaluator.instance_variable_set("@#{varname}", value)
|
64
|
+
end
|
65
|
+
|
55
66
|
def set_timeout(seconds)
|
56
67
|
raise ArgumentError.new("argument to set_timeout must be Numeric or nil") unless seconds.is_a?(Numeric) or seconds.nil?
|
57
68
|
if seconds
|
@@ -233,6 +244,16 @@ module ScripTTY
|
|
233
244
|
true
|
234
245
|
end
|
235
246
|
|
247
|
+
# Send password to the remote application.
|
248
|
+
#
|
249
|
+
# This works like the send method, but "**PASSWORD**" is shown in the
|
250
|
+
# transcript instead of the actual bytes sent.
|
251
|
+
def send_password(bytes)
|
252
|
+
@transcript_writer.from_client("**PASSWORD**") if @transcript_writer
|
253
|
+
@conn.write(bytes)
|
254
|
+
true
|
255
|
+
end
|
256
|
+
|
236
257
|
# Close the connection and exit.
|
237
258
|
def exit
|
238
259
|
@transcript_writer.info("Script executing command", "exit") if @transcript_writer
|
@@ -316,11 +337,7 @@ module ScripTTY
|
|
316
337
|
|
317
338
|
def transcribe_connect_error(e)
|
318
339
|
if @transcript_writer
|
319
|
-
@transcript_writer.
|
320
|
-
# Write the backtrace out as separate records, for the convenience of people reading the logs without a parser.
|
321
|
-
e.backtrace.each do |line|
|
322
|
-
@transcript_writer.info("Connect error backtrace", line)
|
323
|
-
end
|
340
|
+
@transcript_writer.exception(e)
|
324
341
|
end
|
325
342
|
end
|
326
343
|
|
@@ -357,7 +374,7 @@ module ScripTTY
|
|
357
374
|
|
358
375
|
# Make the next wait() call return
|
359
376
|
unless ph.background?
|
360
|
-
@
|
377
|
+
@capture = m
|
361
378
|
@wait_finished = true
|
362
379
|
@net.suspend
|
363
380
|
return true
|
@@ -1,8 +1,5 @@
|
|
1
|
-
require 'scriptty/apps/capture_app'
|
2
|
-
|
3
1
|
module ScripTTY
|
4
|
-
module
|
5
|
-
class CaptureApp # reopen
|
2
|
+
module Net
|
6
3
|
class Console
|
7
4
|
IAC_WILL_ECHO = "\377\373\001"
|
8
5
|
IAC_WONT_ECHO = "\377\374\001"
|
@@ -99,6 +96,5 @@ module ScripTTY
|
|
99
96
|
@app.detach_console(self)
|
100
97
|
end
|
101
98
|
end
|
102
|
-
end
|
103
99
|
end
|
104
100
|
end
|
@@ -1,8 +1,5 @@
|
|
1
|
-
require 'scriptty/apps/capture_app'
|
2
|
-
|
3
1
|
module ScripTTY
|
4
|
-
module
|
5
|
-
class CaptureApp # reopen
|
2
|
+
module Net
|
6
3
|
class PasswordPrompt
|
7
4
|
IAC_WILL_ECHO = "\377\373\001"
|
8
5
|
IAC_WONT_ECHO = "\377\374\001"
|
@@ -60,6 +57,5 @@ module ScripTTY
|
|
60
57
|
nil
|
61
58
|
end
|
62
59
|
end
|
63
|
-
end
|
64
60
|
end
|
65
61
|
end
|
@@ -45,6 +45,8 @@ module ScripTTY
|
|
45
45
|
"Cx" => :client_close, # server closed connection
|
46
46
|
"Sp" => :server_parsed, # parsed escape sequence from server
|
47
47
|
"Cp" => :client_parsed, # parsed escape sequence from client
|
48
|
+
"EXC" => :exception_head, # Exception header - exception class & message
|
49
|
+
"EX+" => :exception_backtrace, # Exception backtrace - single line of a backtrace
|
48
50
|
}
|
49
51
|
|
50
52
|
def initialize(io=nil)
|
@@ -86,6 +86,31 @@ module ScripTTY
|
|
86
86
|
write_event("*", *args)
|
87
87
|
end
|
88
88
|
|
89
|
+
# Convenience function: Log an exception object
|
90
|
+
def exception(exc)
|
91
|
+
klass_name = exc.class.to_s
|
92
|
+
if exc.respond_to?(:message)
|
93
|
+
message = exc.message.to_s
|
94
|
+
else
|
95
|
+
message = exc.to_s
|
96
|
+
end
|
97
|
+
exception_head(klass_name, message)
|
98
|
+
exc.backtrace.each do |line|
|
99
|
+
exception_backtrace(line)
|
100
|
+
end
|
101
|
+
nil
|
102
|
+
end
|
103
|
+
|
104
|
+
# Log exception - header - class and message
|
105
|
+
def exception_head(klass_name, message)
|
106
|
+
write_event("EXC", klass_name, message)
|
107
|
+
end
|
108
|
+
|
109
|
+
# Log exception - single backtrace line
|
110
|
+
def exception_backtrace(line)
|
111
|
+
write_event("EX+", line)
|
112
|
+
end
|
113
|
+
|
89
114
|
private
|
90
115
|
|
91
116
|
def write_event(type, *args)
|
@@ -34,6 +34,9 @@ class TranscriptReaderTest < Test::Unit::TestCase
|
|
34
34
|
[5.000] Sx "disconnect"
|
35
35
|
[5.000] Sx
|
36
36
|
[5] Cx
|
37
|
+
[6.000] EXC "RuntimeError" "foo"
|
38
|
+
[6.001] EX+ "line1"
|
39
|
+
[6.001] EX+ "line2"
|
37
40
|
EOF
|
38
41
|
expected = [
|
39
42
|
[0.0, :info, ["Informational message", "with argument", "\xff"]],
|
@@ -48,6 +51,9 @@ class TranscriptReaderTest < Test::Unit::TestCase
|
|
48
51
|
[5.0, :server_close, ["disconnect"]],
|
49
52
|
[5.0, :server_close, []],
|
50
53
|
[5.0, :client_close, []],
|
54
|
+
[6.0, :exception_head, ["RuntimeError", "foo"]],
|
55
|
+
[6.001, :exception_backtrace, ["line1"]],
|
56
|
+
[6.001, :exception_backtrace, ["line2"]],
|
51
57
|
]
|
52
58
|
reader = ScripTTY::Util::Transcript::Reader.new
|
53
59
|
actual = input_lines.map{|line| reader.parse_line(line) }
|
@@ -34,6 +34,9 @@ class TranscriptWriterTest < Test::Unit::TestCase
|
|
34
34
|
writer.client_close("msg")
|
35
35
|
writer.server_close("msg")
|
36
36
|
writer.info("msg")
|
37
|
+
writer.exception_head("ArgumentError", "msg")
|
38
|
+
writer.exception_backtrace("line1")
|
39
|
+
writer.exception_backtrace("line2")
|
37
40
|
writer.close
|
38
41
|
expected = <<-'EOF'.strip.split("\n").map{|line| line.strip}.join("\n") + "\n"
|
39
42
|
[88.000] Copen "10.0.0.5" "55555"
|
@@ -45,6 +48,9 @@ class TranscriptWriterTest < Test::Unit::TestCase
|
|
45
48
|
[88.000] Cx "msg"
|
46
49
|
[88.000] Sx "msg"
|
47
50
|
[88.000] * "msg"
|
51
|
+
[88.000] EXC "ArgumentError" "msg"
|
52
|
+
[88.000] EX+ "line1"
|
53
|
+
[88.000] EX+ "line2"
|
48
54
|
EOF
|
49
55
|
end
|
50
56
|
|
@@ -123,4 +129,30 @@ class TranscriptWriterTest < Test::Unit::TestCase
|
|
123
129
|
EOF
|
124
130
|
assert_equal expected, sio.string
|
125
131
|
end
|
132
|
+
|
133
|
+
# Test the exception_head and exception_backtrace messages
|
134
|
+
def test_exception
|
135
|
+
sio = StringIO.new
|
136
|
+
writer = ScripTTY::Util::Transcript::Writer.new(sio)
|
137
|
+
writer.override_timestamp = 0.0
|
138
|
+
begin
|
139
|
+
raise ArgumentError.new("foo")
|
140
|
+
rescue => e
|
141
|
+
writer.exception(e)
|
142
|
+
end
|
143
|
+
writer.close
|
144
|
+
|
145
|
+
# Parse the transcript
|
146
|
+
sio = StringIO.new(sio.string)
|
147
|
+
reader = ScripTTY::Util::Transcript::Reader.new(sio)
|
148
|
+
entries = []
|
149
|
+
while (entry = reader.next_entry)
|
150
|
+
entries << entry
|
151
|
+
end
|
152
|
+
assert_equal [0.0, :exception_head, ["ArgumentError", "foo"]], entries.shift
|
153
|
+
assert_match /^\[0\.0, :exception_backtrace, \["[^"]*:in `test_exception'"\]\]$/, entries.shift.inspect
|
154
|
+
until entries.empty?
|
155
|
+
assert_equal :exception_backtrace, entries.shift[1]
|
156
|
+
end
|
157
|
+
end
|
126
158
|
end
|
metadata
CHANGED
@@ -3,44 +3,44 @@ name: scriptty
|
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease: false
|
5
5
|
segments:
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
version: 0.
|
6
|
+
- 0
|
7
|
+
- 7
|
8
|
+
- 0
|
9
|
+
version: 0.7.0
|
10
10
|
platform: java
|
11
11
|
authors:
|
12
|
-
- Dwayne Litzenberger
|
12
|
+
- Dwayne Litzenberger
|
13
13
|
autorequire:
|
14
14
|
bindir: bin
|
15
15
|
cert_chain: []
|
16
16
|
|
17
|
-
date: 2010-03-
|
17
|
+
date: 2010-03-29 00:00:00 -04:00
|
18
18
|
default_executable:
|
19
19
|
dependencies:
|
20
|
-
- !ruby/object:Gem::Dependency
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
- !ruby/object:Gem::Dependency
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: treetop
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
requirements:
|
25
|
+
- - ">="
|
26
|
+
- !ruby/object:Gem::Version
|
27
|
+
segments:
|
28
|
+
- 0
|
29
|
+
version: "0"
|
30
|
+
type: :runtime
|
31
|
+
version_requirements: *id001
|
32
|
+
- !ruby/object:Gem::Dependency
|
33
|
+
name: multibyte
|
34
|
+
prerelease: false
|
35
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
36
|
+
requirements:
|
37
|
+
- - ">="
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
segments:
|
40
|
+
- 0
|
41
|
+
version: "0"
|
42
|
+
type: :runtime
|
43
|
+
version_requirements: *id002
|
44
44
|
description: |
|
45
45
|
ScripTTY is a JRuby application and library that lets you control full-screen
|
46
46
|
terminal applications using an expect-like scripting language and a full-screen
|
@@ -48,109 +48,109 @@ description: |
|
|
48
48
|
|
49
49
|
email: dlitz@infonium.ca
|
50
50
|
executables:
|
51
|
-
- scriptty-capture
|
52
|
-
- scriptty-dump-screens
|
53
|
-
- scriptty-replay
|
54
|
-
- scriptty-term-test
|
55
|
-
- scriptty-transcript-parse
|
51
|
+
- scriptty-capture
|
52
|
+
- scriptty-dump-screens
|
53
|
+
- scriptty-replay
|
54
|
+
- scriptty-term-test
|
55
|
+
- scriptty-transcript-parse
|
56
56
|
extensions: []
|
57
57
|
|
58
58
|
extra_rdoc_files:
|
59
|
-
- README.rdoc
|
59
|
+
- README.rdoc
|
60
60
|
files:
|
61
|
-
- .gitattributes
|
62
|
-
- .gitignore
|
63
|
-
- COPYING
|
64
|
-
- COPYING.LESSER
|
65
|
-
- README.rdoc
|
66
|
-
- Rakefile
|
67
|
-
- VERSION
|
68
|
-
- bin/scriptty-capture
|
69
|
-
- bin/scriptty-dump-screens
|
70
|
-
- bin/scriptty-replay
|
71
|
-
- bin/scriptty-term-test
|
72
|
-
- bin/scriptty-transcript-parse
|
73
|
-
- examples/captures/xterm-overlong-line-prompt.bin
|
74
|
-
- examples/captures/xterm-vim-session.bin
|
75
|
-
- examples/demo-capture.rb
|
76
|
-
- examples/demo-telnet-session-screens.txt
|
77
|
-
- examples/demo-telnet-session.rb
|
78
|
-
- examples/telnet-nego.rb
|
79
|
-
- lib/scriptty/apps/capture_app.rb
|
80
|
-
- lib/scriptty/apps/
|
81
|
-
- lib/scriptty/apps/
|
82
|
-
- lib/scriptty/apps/
|
83
|
-
- lib/scriptty/apps/
|
84
|
-
- lib/scriptty/
|
85
|
-
- lib/scriptty/
|
86
|
-
- lib/scriptty/
|
87
|
-
- lib/scriptty/
|
88
|
-
- lib/scriptty/
|
89
|
-
- lib/scriptty/
|
90
|
-
- lib/scriptty/net/
|
91
|
-
- lib/scriptty/screen_pattern.rb
|
92
|
-
- lib/scriptty/screen_pattern/generator.rb
|
93
|
-
- lib/scriptty/screen_pattern/parser.rb
|
94
|
-
- lib/scriptty/term.rb
|
95
|
-
- lib/scriptty/term/dg410.rb
|
96
|
-
- lib/scriptty/term/dg410/dg410-client-escapes.txt
|
97
|
-
- lib/scriptty/term/dg410/dg410-escapes.txt
|
98
|
-
- lib/scriptty/term/dg410/parser.rb
|
99
|
-
- lib/scriptty/term/xterm.rb
|
100
|
-
- lib/scriptty/term/xterm/xterm-escapes.txt
|
101
|
-
- lib/scriptty/util/fsm.rb
|
102
|
-
- lib/scriptty/util/fsm/definition_parser.rb
|
103
|
-
- lib/scriptty/util/fsm/scriptty_fsm_definition.treetop
|
104
|
-
- lib/scriptty/util/transcript/reader.rb
|
105
|
-
- lib/scriptty/util/transcript/writer.rb
|
106
|
-
- test.watchr
|
107
|
-
- test/apps/capture_app_test.rb
|
108
|
-
- test/apps/transcript_parse_app_test.rb
|
109
|
-
- test/cursor_test.rb
|
110
|
-
- test/fsm_definition_parser_test.rb
|
111
|
-
- test/fsm_test.rb
|
112
|
-
- test/multiline_buffer_test.rb
|
113
|
-
- test/net/event_loop_test.rb
|
114
|
-
- test/screen_pattern/generator_test.rb
|
115
|
-
- test/screen_pattern/parser_test.rb
|
116
|
-
- test/screen_pattern/parser_test/explicit_cursor_pattern.txt
|
117
|
-
- test/screen_pattern/parser_test/explicit_fields.txt
|
118
|
-
- test/screen_pattern/parser_test/multiple_patterns.txt
|
119
|
-
- test/screen_pattern/parser_test/simple_pattern.txt
|
120
|
-
- test/screen_pattern/parser_test/truncated_heredoc.txt
|
121
|
-
- test/screen_pattern/parser_test/utf16bebom_pattern.bin
|
122
|
-
- test/screen_pattern/parser_test/utf16lebom_pattern.bin
|
123
|
-
- test/screen_pattern/parser_test/utf8_pattern.bin
|
124
|
-
- test/screen_pattern/parser_test/utf8_unix_pattern.bin
|
125
|
-
- test/screen_pattern/parser_test/utf8bom_pattern.bin
|
126
|
-
- test/term/dg410/parser_test.rb
|
127
|
-
- test/term/xterm_test.rb
|
128
|
-
- test/test_helper.rb
|
129
|
-
- test/util/transcript/reader_test.rb
|
130
|
-
- test/util/transcript/writer_test.rb
|
61
|
+
- .gitattributes
|
62
|
+
- .gitignore
|
63
|
+
- COPYING
|
64
|
+
- COPYING.LESSER
|
65
|
+
- README.rdoc
|
66
|
+
- Rakefile
|
67
|
+
- VERSION
|
68
|
+
- bin/scriptty-capture
|
69
|
+
- bin/scriptty-dump-screens
|
70
|
+
- bin/scriptty-replay
|
71
|
+
- bin/scriptty-term-test
|
72
|
+
- bin/scriptty-transcript-parse
|
73
|
+
- examples/captures/xterm-overlong-line-prompt.bin
|
74
|
+
- examples/captures/xterm-vim-session.bin
|
75
|
+
- examples/demo-capture.rb
|
76
|
+
- examples/demo-telnet-session-screens.txt
|
77
|
+
- examples/demo-telnet-session.rb
|
78
|
+
- examples/telnet-nego.rb
|
79
|
+
- lib/scriptty/apps/capture_app.rb
|
80
|
+
- lib/scriptty/apps/dump_screens_app.rb
|
81
|
+
- lib/scriptty/apps/replay_app.rb
|
82
|
+
- lib/scriptty/apps/term_test_app.rb
|
83
|
+
- lib/scriptty/apps/transcript_parse_app.rb
|
84
|
+
- lib/scriptty/cursor.rb
|
85
|
+
- lib/scriptty/exception.rb
|
86
|
+
- lib/scriptty/expect.rb
|
87
|
+
- lib/scriptty/multiline_buffer.rb
|
88
|
+
- lib/scriptty/net/console.rb
|
89
|
+
- lib/scriptty/net/event_loop.rb
|
90
|
+
- lib/scriptty/net/password_prompt.rb
|
91
|
+
- lib/scriptty/screen_pattern.rb
|
92
|
+
- lib/scriptty/screen_pattern/generator.rb
|
93
|
+
- lib/scriptty/screen_pattern/parser.rb
|
94
|
+
- lib/scriptty/term.rb
|
95
|
+
- lib/scriptty/term/dg410.rb
|
96
|
+
- lib/scriptty/term/dg410/dg410-client-escapes.txt
|
97
|
+
- lib/scriptty/term/dg410/dg410-escapes.txt
|
98
|
+
- lib/scriptty/term/dg410/parser.rb
|
99
|
+
- lib/scriptty/term/xterm.rb
|
100
|
+
- lib/scriptty/term/xterm/xterm-escapes.txt
|
101
|
+
- lib/scriptty/util/fsm.rb
|
102
|
+
- lib/scriptty/util/fsm/definition_parser.rb
|
103
|
+
- lib/scriptty/util/fsm/scriptty_fsm_definition.treetop
|
104
|
+
- lib/scriptty/util/transcript/reader.rb
|
105
|
+
- lib/scriptty/util/transcript/writer.rb
|
106
|
+
- test.watchr
|
107
|
+
- test/apps/capture_app_test.rb
|
108
|
+
- test/apps/transcript_parse_app_test.rb
|
109
|
+
- test/cursor_test.rb
|
110
|
+
- test/fsm_definition_parser_test.rb
|
111
|
+
- test/fsm_test.rb
|
112
|
+
- test/multiline_buffer_test.rb
|
113
|
+
- test/net/event_loop_test.rb
|
114
|
+
- test/screen_pattern/generator_test.rb
|
115
|
+
- test/screen_pattern/parser_test.rb
|
116
|
+
- test/screen_pattern/parser_test/explicit_cursor_pattern.txt
|
117
|
+
- test/screen_pattern/parser_test/explicit_fields.txt
|
118
|
+
- test/screen_pattern/parser_test/multiple_patterns.txt
|
119
|
+
- test/screen_pattern/parser_test/simple_pattern.txt
|
120
|
+
- test/screen_pattern/parser_test/truncated_heredoc.txt
|
121
|
+
- test/screen_pattern/parser_test/utf16bebom_pattern.bin
|
122
|
+
- test/screen_pattern/parser_test/utf16lebom_pattern.bin
|
123
|
+
- test/screen_pattern/parser_test/utf8_pattern.bin
|
124
|
+
- test/screen_pattern/parser_test/utf8_unix_pattern.bin
|
125
|
+
- test/screen_pattern/parser_test/utf8bom_pattern.bin
|
126
|
+
- test/term/dg410/parser_test.rb
|
127
|
+
- test/term/xterm_test.rb
|
128
|
+
- test/test_helper.rb
|
129
|
+
- test/util/transcript/reader_test.rb
|
130
|
+
- test/util/transcript/writer_test.rb
|
131
131
|
has_rdoc: true
|
132
132
|
homepage: http://github.com/infonium/scriptty
|
133
133
|
licenses: []
|
134
134
|
|
135
135
|
post_install_message:
|
136
136
|
rdoc_options:
|
137
|
-
- --charset=UTF-8
|
137
|
+
- --charset=UTF-8
|
138
138
|
require_paths:
|
139
|
-
- lib
|
139
|
+
- lib
|
140
140
|
required_ruby_version: !ruby/object:Gem::Requirement
|
141
141
|
requirements:
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
142
|
+
- - ">="
|
143
|
+
- !ruby/object:Gem::Version
|
144
|
+
segments:
|
145
|
+
- 0
|
146
|
+
version: "0"
|
147
147
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
148
148
|
requirements:
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
149
|
+
- - ">="
|
150
|
+
- !ruby/object:Gem::Version
|
151
|
+
segments:
|
152
|
+
- 0
|
153
|
+
version: "0"
|
154
154
|
requirements: []
|
155
155
|
|
156
156
|
rubyforge_project:
|
@@ -159,20 +159,20 @@ signing_key:
|
|
159
159
|
specification_version: 3
|
160
160
|
summary: write expect-like script to control full-screen terminal-based applications
|
161
161
|
test_files:
|
162
|
-
- test/
|
163
|
-
- test/
|
164
|
-
- test/
|
165
|
-
- test/
|
166
|
-
- test/
|
167
|
-
- test/
|
168
|
-
- test/
|
169
|
-
- test/
|
170
|
-
- test/screen_pattern/
|
171
|
-
- test/
|
172
|
-
- test/term/xterm_test.rb
|
173
|
-
- test/
|
174
|
-
- test/util/transcript/reader_test.rb
|
175
|
-
- test/util/transcript/writer_test.rb
|
176
|
-
- examples/demo-capture.rb
|
177
|
-
- examples/demo-telnet-session.rb
|
178
|
-
- examples/telnet-nego.rb
|
162
|
+
- test/cursor_test.rb
|
163
|
+
- test/fsm_definition_parser_test.rb
|
164
|
+
- test/fsm_test.rb
|
165
|
+
- test/multiline_buffer_test.rb
|
166
|
+
- test/test_helper.rb
|
167
|
+
- test/apps/capture_app_test.rb
|
168
|
+
- test/apps/transcript_parse_app_test.rb
|
169
|
+
- test/net/event_loop_test.rb
|
170
|
+
- test/screen_pattern/generator_test.rb
|
171
|
+
- test/screen_pattern/parser_test.rb
|
172
|
+
- test/term/xterm_test.rb
|
173
|
+
- test/term/dg410/parser_test.rb
|
174
|
+
- test/util/transcript/reader_test.rb
|
175
|
+
- test/util/transcript/writer_test.rb
|
176
|
+
- examples/demo-capture.rb
|
177
|
+
- examples/demo-telnet-session.rb
|
178
|
+
- examples/telnet-nego.rb
|