spielbash 0.1.0 → 0.1.1
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.
- checksums.yaml +4 -4
- data/lib/spielbash/interactor/record_interactor.rb +31 -22
- data/lib/spielbash/model/action/delete_environment_action.rb +22 -0
- data/lib/spielbash/model/action/new_environment_action.rb +23 -0
- data/lib/spielbash/model/context.rb +3 -2
- data/lib/spielbash/model/session.rb +10 -1
- data/lib/spielbash/spielbash.rb +2 -0
- data/lib/spielbash/version.rb +1 -1
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: '09da61edc3e1a9325354e616ad9d9dd031828469'
|
4
|
+
data.tar.gz: 106b73657f6a99e63b584981f0bc9a77f73c5447
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 959d24a54faaebe57e0f9ddd75c81baf61e07eed707a075d48f6f3ca532e754fe73e7dbd195c067771c7afd9347b14e9aa9e3d7777f26680572374f125b873d5
|
7
|
+
data.tar.gz: f9baca5a0481b7f322aca9490497916d63aa929531ea5d87039804eea777b880c16a9a680f80d15a88d1fe69221bfb39a78d4e354395cb73c3f99a901aa5398f
|
@@ -12,8 +12,9 @@ module Spielbash
|
|
12
12
|
wait = opts['wait']
|
13
13
|
width = opts['width']
|
14
14
|
height = opts['height']
|
15
|
+
wait_check_cmd = opts['wait_check_cmd']
|
15
16
|
|
16
|
-
context = Spielbash::Context.new(typing_delay_s, reading_delay_s, wait, width, height)
|
17
|
+
context = Spielbash::Context.new(typing_delay_s, reading_delay_s, wait, width, height, wait_check_cmd)
|
17
18
|
|
18
19
|
actions = create_actions(context, script['scenes'])
|
19
20
|
pre_run_actions = create_actions(context, script['pre-run'])
|
@@ -24,6 +25,7 @@ module Spielbash
|
|
24
25
|
end
|
25
26
|
|
26
27
|
private
|
28
|
+
|
27
29
|
def create_actions(context, scenes)
|
28
30
|
actions = []
|
29
31
|
for scene in scenes do
|
@@ -36,27 +38,34 @@ module Spielbash
|
|
36
38
|
action_opts['height'])
|
37
39
|
|
38
40
|
action = case
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
41
|
+
when scene.has_key?('message') then
|
42
|
+
value = scene['message']
|
43
|
+
message_context = Spielbash::MessageContext.new(context,
|
44
|
+
action_opts['typing_delay_s'],
|
45
|
+
action_opts['reading_delay_s'],
|
46
|
+
action_opts['wait'],
|
47
|
+
action_opts['width'],
|
48
|
+
action_opts['height'],
|
49
|
+
action_opts['delete'].nil? ? true : action_opts['delete'])
|
50
|
+
Spielbash::MessageAction.new(value, message_context)
|
51
|
+
when scene.has_key?('command') then
|
52
|
+
value = scene['command']
|
53
|
+
Spielbash::CommandAction.new(value, action_context)
|
54
|
+
when scene.has_key?('pause') then
|
55
|
+
value = scene['pause']
|
56
|
+
Spielbash::PauseAction.new(value, action_context)
|
57
|
+
when scene.has_key?('key') then
|
58
|
+
value = scene['key']
|
59
|
+
Spielbash::PressKeyAction.new(value, action_context)
|
60
|
+
when scene.has_key?('new_env') then
|
61
|
+
cmd = scene['new_env']
|
62
|
+
wait_cmd = scene['wait_check_cmd']
|
63
|
+
Spielbash::NewEnvironmentAction.new(cmd, wait_cmd, context)
|
64
|
+
when scene.has_key?('delete_env') then
|
65
|
+
cmd = scene['delete_env']
|
66
|
+
Spielbash::DeleteEnvironmentAction.new(cmd, context)
|
67
|
+
else
|
68
|
+
not_implemented
|
60
69
|
end
|
61
70
|
|
62
71
|
actions << action
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Spielbash
|
2
|
+
class DeleteEnvironmentAction < Spielbash::BaseAction
|
3
|
+
attr_accessor :command
|
4
|
+
|
5
|
+
def initialize(command, root_context)
|
6
|
+
super(root_context)
|
7
|
+
@command = command
|
8
|
+
end
|
9
|
+
|
10
|
+
def execute(session)
|
11
|
+
command.each_char do |c|
|
12
|
+
session.send_key(c)
|
13
|
+
sleep(action_context.typing_delay_s)
|
14
|
+
end
|
15
|
+
session.send_key('C-m')
|
16
|
+
|
17
|
+
sleep(action_context.reading_delay_s)
|
18
|
+
|
19
|
+
action_context.wait_check_cmd = nil
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,23 @@
|
|
1
|
+
module Spielbash
|
2
|
+
class NewEnvironmentAction < Spielbash::BaseAction
|
3
|
+
attr_accessor :command, :wait_check_cmd
|
4
|
+
|
5
|
+
def initialize(command, wait_check_cmd, root_context)
|
6
|
+
super(root_context)
|
7
|
+
@command = command
|
8
|
+
@wait_check_cmd = wait_check_cmd
|
9
|
+
end
|
10
|
+
|
11
|
+
def execute(session)
|
12
|
+
command.each_char do |c|
|
13
|
+
session.send_key(c)
|
14
|
+
sleep(action_context.typing_delay_s)
|
15
|
+
end
|
16
|
+
session.send_key('C-m')
|
17
|
+
|
18
|
+
sleep(action_context.reading_delay_s)
|
19
|
+
|
20
|
+
action_context.wait_check_cmd = wait_check_cmd
|
21
|
+
end
|
22
|
+
end
|
23
|
+
end
|
@@ -1,13 +1,14 @@
|
|
1
1
|
module Spielbash
|
2
2
|
class Context
|
3
|
-
attr_accessor :typing_delay_s, :reading_delay_s, :wait, :width, :height
|
3
|
+
attr_accessor :typing_delay_s, :reading_delay_s, :wait, :width, :height, :wait_check_cmd
|
4
4
|
|
5
|
-
def initialize(typinig_delay_s, reading_delay_s, wait, width, height)
|
5
|
+
def initialize(typinig_delay_s, reading_delay_s, wait, width, height, wait_check_cmd = nil)
|
6
6
|
@typing_delay_s = typinig_delay_s
|
7
7
|
@reading_delay_s = reading_delay_s
|
8
8
|
@wait = wait
|
9
9
|
@width = width
|
10
10
|
@height = height
|
11
|
+
@wait_check_cmd = wait_check_cmd
|
11
12
|
end
|
12
13
|
end
|
13
14
|
end
|
@@ -39,7 +39,7 @@ module Spielbash
|
|
39
39
|
return if pid.empty?
|
40
40
|
|
41
41
|
loop do
|
42
|
-
|
42
|
+
exec_wait_check_cmd(pid)
|
43
43
|
children = last_stdout
|
44
44
|
break if children.empty?
|
45
45
|
end
|
@@ -59,6 +59,15 @@ module Spielbash
|
|
59
59
|
|
60
60
|
private
|
61
61
|
|
62
|
+
def exec_wait_check_cmd(pid)
|
63
|
+
if context.wait_check_cmd.nil?
|
64
|
+
execute_with('pgrep', "-P #{pid}", true)
|
65
|
+
else
|
66
|
+
cmd = context.wait_check_cmd.split
|
67
|
+
execute_with_exactly(cmd.first, true, false, true, *cmd.drop(1))
|
68
|
+
end
|
69
|
+
end
|
70
|
+
|
62
71
|
def execute_tmux_with(arguments, wait = false)
|
63
72
|
execute_with('tmux', arguments, wait)
|
64
73
|
end
|
data/lib/spielbash/spielbash.rb
CHANGED
@@ -9,3 +9,5 @@ require 'spielbash/model/action/command_action'
|
|
9
9
|
require 'spielbash/model/action/pause_action'
|
10
10
|
require 'spielbash/model/action/action_context'
|
11
11
|
require 'spielbash/model/action/message_context'
|
12
|
+
require 'spielbash/model/action/new_environment_action'
|
13
|
+
require 'spielbash/model/action/delete_environment_action'
|
data/lib/spielbash/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: spielbash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Anton Malinskiy
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-04-
|
11
|
+
date: 2018-04-07 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: gli
|
@@ -148,8 +148,10 @@ files:
|
|
148
148
|
- lib/spielbash/model/action/action_context.rb
|
149
149
|
- lib/spielbash/model/action/base_action.rb
|
150
150
|
- lib/spielbash/model/action/command_action.rb
|
151
|
+
- lib/spielbash/model/action/delete_environment_action.rb
|
151
152
|
- lib/spielbash/model/action/message_action.rb
|
152
153
|
- lib/spielbash/model/action/message_context.rb
|
154
|
+
- lib/spielbash/model/action/new_environment_action.rb
|
153
155
|
- lib/spielbash/model/action/pause_action.rb
|
154
156
|
- lib/spielbash/model/action/press_key_action.rb
|
155
157
|
- lib/spielbash/model/context.rb
|