hiiro 0.1.157 → 0.1.159
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/hiiro/service_manager.rb +18 -26
- data/lib/hiiro/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 394980810fd90dc9fdd82383a671502fd78669690479d6b3e6ba0fb4ed6510fc
|
|
4
|
+
data.tar.gz: 189dffc8b1e175751572114424b7ce0078e6eae386aa3c3993ae0d0689c37733
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 6cef595bf8648318ade523cd214a43d76960398543168803fe9a2cb2948dbe4d065e259a5de3aa5ebc60a2e703fa3de21e049b5c9c6295a3c3602c8a5f6524fd
|
|
7
|
+
data.tar.gz: '009cf0ef87a09777f322bba3868bd06197d1b8207f94e580fe7e63ed1437f2a5c965c35b66b7479f3fb819a0cf90dd64d9327f38fc76926053371c7a6b984b7f'
|
|
@@ -82,14 +82,8 @@ class Hiiro
|
|
|
82
82
|
puts "Starting group '#{group[:name]}'..."
|
|
83
83
|
|
|
84
84
|
# Create one window for the group, split panes for each service
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
first_svc = find_service(first_name)
|
|
88
|
-
first_base_dir = resolve_base_dir(first_svc&.[](:base_dir))
|
|
89
|
-
|
|
90
|
-
# Create a new window for the group
|
|
91
|
-
window_target = create_tmux_window(session, group[:name], first_base_dir)
|
|
92
|
-
first_pane_id = capture_pane_id(window_target)
|
|
85
|
+
window_target, first_pane_id = create_tmux_window(session, group[:name])
|
|
86
|
+
last_pane_id = first_pane_id
|
|
93
87
|
|
|
94
88
|
members.each_with_index do |member, idx|
|
|
95
89
|
member_name = member['name'] || member[:name]
|
|
@@ -98,14 +92,12 @@ class Hiiro
|
|
|
98
92
|
svc = find_service(member_name)
|
|
99
93
|
next unless svc
|
|
100
94
|
|
|
101
|
-
base_dir = resolve_base_dir(svc[:base_dir])
|
|
102
|
-
|
|
103
95
|
if idx == 0
|
|
104
|
-
# First service uses the initial pane
|
|
105
96
|
pane_id = first_pane_id
|
|
106
97
|
else
|
|
107
|
-
#
|
|
108
|
-
pane_id = split_tmux_pane(window_target,
|
|
98
|
+
# Split from the last pane so each new pane is distinct
|
|
99
|
+
pane_id = split_tmux_pane(window_target, last_pane_id)
|
|
100
|
+
last_pane_id = pane_id
|
|
109
101
|
end
|
|
110
102
|
|
|
111
103
|
member_tmux_info = tmux_info.merge(
|
|
@@ -203,8 +195,7 @@ class Hiiro
|
|
|
203
195
|
|
|
204
196
|
if session && !skip_window_creation
|
|
205
197
|
# Create a new tmux window for this service
|
|
206
|
-
window_target = create_tmux_window(session, svc_name
|
|
207
|
-
pane_id = capture_pane_id(window_target)
|
|
198
|
+
window_target, pane_id = create_tmux_window(session, svc_name)
|
|
208
199
|
elsif session && skip_window_creation
|
|
209
200
|
# Pane already created by start_group
|
|
210
201
|
pane_id = tmux_info[:pane]
|
|
@@ -215,7 +206,7 @@ class Hiiro
|
|
|
215
206
|
end
|
|
216
207
|
|
|
217
208
|
if pane_id
|
|
218
|
-
|
|
209
|
+
send_to_pane(pane_id, base_dir, script)
|
|
219
210
|
else
|
|
220
211
|
system("cd #{base_dir} && #{script} &")
|
|
221
212
|
end
|
|
@@ -754,7 +745,7 @@ class Hiiro
|
|
|
754
745
|
end
|
|
755
746
|
|
|
756
747
|
def write_shell_script(path, cmds)
|
|
757
|
-
lines = ["#!/usr/bin/env bash"
|
|
748
|
+
lines = ["#!/usr/bin/env bash"]
|
|
758
749
|
lines.concat(cmds)
|
|
759
750
|
File.write(path, lines.join("\n") + "\n")
|
|
760
751
|
File.chmod(0755, path)
|
|
@@ -809,19 +800,20 @@ class Hiiro
|
|
|
809
800
|
`tmux display-message -p '#S'`.chomp
|
|
810
801
|
end
|
|
811
802
|
|
|
812
|
-
def create_tmux_window(session, name
|
|
813
|
-
|
|
814
|
-
"#{session}:#{name}"
|
|
803
|
+
def create_tmux_window(session, name)
|
|
804
|
+
pane_id = `tmux new-window -d -t #{session} -n #{name} -P -F '\#{pane_id}'`.chomp
|
|
805
|
+
window_target = "#{session}:#{name}"
|
|
806
|
+
[window_target, pane_id]
|
|
815
807
|
end
|
|
816
808
|
|
|
817
|
-
def
|
|
818
|
-
`tmux
|
|
809
|
+
def split_tmux_pane(window_target, target_pane_id)
|
|
810
|
+
pane_id = `tmux split-window -d -t #{target_pane_id} -P -F '\#{pane_id}'`.chomp
|
|
811
|
+
system('tmux', 'select-layout', '-t', window_target, 'even-vertical')
|
|
812
|
+
pane_id
|
|
819
813
|
end
|
|
820
814
|
|
|
821
|
-
def
|
|
822
|
-
system('tmux', '
|
|
823
|
-
system('tmux', 'select-layout', '-t', window_target, 'even-vertical')
|
|
824
|
-
`tmux list-panes -t #{window_target} -F '\#{pane_id}'`.chomp.split("\n").last
|
|
815
|
+
def send_to_pane(pane_id, base_dir, script)
|
|
816
|
+
system('tmux', 'send-keys', '-t', pane_id, "cd #{base_dir} && #{script}", 'Enter')
|
|
825
817
|
end
|
|
826
818
|
|
|
827
819
|
def load_config
|
data/lib/hiiro/version.rb
CHANGED