automux 0.3.0 → 1.0.0
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 +7 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +96 -11
- data/README.md +13 -4
- data/automux.gemspec +1 -1
- data/data/automux/recipes/default.sh.erb +1 -1
- data/features/custom_recipes.feature +1 -1
- data/features/error_messages.feature +14 -0
- data/features/general_usage.feature +10 -10
- data/features/hooks.feature +4 -4
- data/features/runtime_options.feature +3 -3
- data/features/session_and_window_options.feature +3 -3
- data/features/step_definitions/setup_windows_steps.rb +1 -1
- data/features/step_definitions/shared_steps.rb +2 -0
- data/features/support/env.rb +2 -2
- data/features/support/hooks.rb +1 -1
- data/lib/automux/core/tmux/session.rb +14 -1
- data/lib/automux/library/file_options_parser.rb +1 -1
- data/lib/automux/library/mini_erb.rb +1 -1
- data/lib/automux/redirector/default.rb +2 -0
- data/lib/automux/version.rb +1 -1
- data/lib/automux/views/messages/error.sh.erb +1 -1
- data/test/command_line.rb +1 -1
- data/test/session_test.rb +2 -2
- metadata +11 -20
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: a4f09f31c64290391f58e011df4f664d32f5354e3d469861ded8a013f65ef6d9
|
|
4
|
+
data.tar.gz: 20f2157655516fc57f159aa76c6090e035c3b912dab122c6c01072ae5c727f86
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: c67b77ab6651416b9cd147352582ed41a927fd19f04c96fa75cedb679d5f5b18e3016a8a76ae7945b55847278c71f46b237d23806184570eff2c334480986c4e
|
|
7
|
+
data.tar.gz: 1ac36c0b1ba74bbccfcd59c9e83fc93243e8176da49b0d41693faa82bcd4aee4c2a900c864cd276246c2cd9317587527f23678d01fcd6596d1c554adebb3b56a
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,20 +1,105 @@
|
|
|
1
1
|
GEM
|
|
2
2
|
remote: https://rubygems.org/
|
|
3
3
|
specs:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
4
|
+
base64 (0.3.0)
|
|
5
|
+
bigdecimal (4.0.1)
|
|
6
|
+
builder (3.3.0)
|
|
7
|
+
cucumber (10.2.0)
|
|
8
|
+
base64 (~> 0.2)
|
|
9
|
+
builder (~> 3.2)
|
|
10
|
+
cucumber-ci-environment (> 9, < 12)
|
|
11
|
+
cucumber-core (> 15, < 17)
|
|
12
|
+
cucumber-cucumber-expressions (> 17, < 20)
|
|
13
|
+
cucumber-html-formatter (> 21, < 23)
|
|
14
|
+
diff-lcs (~> 1.5)
|
|
15
|
+
logger (~> 1.6)
|
|
16
|
+
mini_mime (~> 1.1)
|
|
17
|
+
multi_test (~> 1.1)
|
|
18
|
+
sys-uname (~> 1.3)
|
|
19
|
+
cucumber-ci-environment (11.0.0)
|
|
20
|
+
cucumber-core (16.1.1)
|
|
21
|
+
cucumber-gherkin (> 36, < 40)
|
|
22
|
+
cucumber-messages (> 31, < 33)
|
|
23
|
+
cucumber-tag-expressions (> 6, < 9)
|
|
24
|
+
cucumber-cucumber-expressions (19.0.0)
|
|
25
|
+
bigdecimal
|
|
26
|
+
cucumber-gherkin (38.0.0)
|
|
27
|
+
cucumber-messages (>= 31, < 33)
|
|
28
|
+
cucumber-html-formatter (22.3.0)
|
|
29
|
+
cucumber-messages (> 23, < 33)
|
|
30
|
+
cucumber-messages (32.0.1)
|
|
31
|
+
cucumber-tag-expressions (8.1.0)
|
|
32
|
+
diff-lcs (1.6.2)
|
|
33
|
+
ffi (1.17.3)
|
|
34
|
+
ffi (1.17.3-aarch64-linux-gnu)
|
|
35
|
+
ffi (1.17.3-aarch64-linux-musl)
|
|
36
|
+
ffi (1.17.3-arm-linux-gnu)
|
|
37
|
+
ffi (1.17.3-arm-linux-musl)
|
|
38
|
+
ffi (1.17.3-arm64-darwin)
|
|
39
|
+
ffi (1.17.3-x86-linux-gnu)
|
|
40
|
+
ffi (1.17.3-x86-linux-musl)
|
|
41
|
+
ffi (1.17.3-x86_64-darwin)
|
|
42
|
+
ffi (1.17.3-x86_64-linux-gnu)
|
|
43
|
+
ffi (1.17.3-x86_64-linux-musl)
|
|
44
|
+
logger (1.7.0)
|
|
45
|
+
memoist3 (1.0.0)
|
|
46
|
+
mini_mime (1.1.5)
|
|
47
|
+
minitest (6.0.1)
|
|
48
|
+
prism (~> 1.5)
|
|
49
|
+
multi_test (1.1.0)
|
|
50
|
+
prism (1.9.0)
|
|
51
|
+
sys-uname (1.4.1)
|
|
52
|
+
ffi (~> 1.1)
|
|
53
|
+
memoist3 (~> 1.0.0)
|
|
15
54
|
|
|
16
55
|
PLATFORMS
|
|
56
|
+
aarch64-linux-gnu
|
|
57
|
+
aarch64-linux-musl
|
|
58
|
+
arm-linux-gnu
|
|
59
|
+
arm-linux-musl
|
|
60
|
+
arm64-darwin
|
|
17
61
|
ruby
|
|
62
|
+
x86-linux-gnu
|
|
63
|
+
x86-linux-musl
|
|
64
|
+
x86_64-darwin
|
|
65
|
+
x86_64-linux-gnu
|
|
66
|
+
x86_64-linux-musl
|
|
18
67
|
|
|
19
68
|
DEPENDENCIES
|
|
20
69
|
cucumber
|
|
70
|
+
minitest
|
|
71
|
+
|
|
72
|
+
CHECKSUMS
|
|
73
|
+
base64 (0.3.0) sha256=27337aeabad6ffae05c265c450490628ef3ebd4b67be58257393227588f5a97b
|
|
74
|
+
bigdecimal (4.0.1) sha256=8b07d3d065a9f921c80ceaea7c9d4ae596697295b584c296fe599dd0ad01c4a7
|
|
75
|
+
builder (3.3.0) sha256=497918d2f9dca528fdca4b88d84e4ef4387256d984b8154e9d5d3fe5a9c8835f
|
|
76
|
+
cucumber (10.2.0) sha256=fdedbd31ecf40858b60f04853f2aa15c44f5c30bbac29c6a227fa1e7005a8158
|
|
77
|
+
cucumber-ci-environment (11.0.0) sha256=0df79a9e1d0b015b3d9def680f989200d96fef206f4d19ccf86a338c4f71d1e2
|
|
78
|
+
cucumber-core (16.1.1) sha256=d3aaa80a1ee2865f63f1a21ef496129f675af9099993b9af9608c4ef8ae26b89
|
|
79
|
+
cucumber-cucumber-expressions (19.0.0) sha256=33208ff204732ac9bed42b46993a0a243054f71ece08579d57e53df6a1c9d93a
|
|
80
|
+
cucumber-gherkin (38.0.0) sha256=3e5846badf646eaec482b07067520e4494f370a0cfa5474d63522ca2ace800c4
|
|
81
|
+
cucumber-html-formatter (22.3.0) sha256=f9768ed05588dbd73a5f3824c2cc648bd86b00206e6972d743af8051281d0729
|
|
82
|
+
cucumber-messages (32.0.1) sha256=8889d29fa5486e6523bd537e95fbf86b99eb11258528d2d55af4b806594ffcff
|
|
83
|
+
cucumber-tag-expressions (8.1.0) sha256=9bd8c4b6654f8e5bf2a9c99329b6f32136a75e50cd39d4cfb3927d0fa9f52e21
|
|
84
|
+
diff-lcs (1.6.2) sha256=9ae0d2cba7d4df3075fe8cd8602a8604993efc0dfa934cff568969efb1909962
|
|
85
|
+
ffi (1.17.3) sha256=0e9f39f7bb3934f77ad6feab49662be77e87eedcdeb2a3f5c0234c2938563d4c
|
|
86
|
+
ffi (1.17.3-aarch64-linux-gnu) sha256=28ad573df26560f0aedd8a90c3371279a0b2bd0b4e834b16a2baa10bd7a97068
|
|
87
|
+
ffi (1.17.3-aarch64-linux-musl) sha256=020b33b76775b1abacc3b7d86b287cef3251f66d747092deec592c7f5df764b2
|
|
88
|
+
ffi (1.17.3-arm-linux-gnu) sha256=5bd4cea83b68b5ec0037f99c57d5ce2dd5aa438f35decc5ef68a7d085c785668
|
|
89
|
+
ffi (1.17.3-arm-linux-musl) sha256=0d7626bb96265f9af78afa33e267d71cfef9d9a8eb8f5525344f8da6c7d76053
|
|
90
|
+
ffi (1.17.3-arm64-darwin) sha256=0c690555d4cee17a7f07c04d59df39b2fba74ec440b19da1f685c6579bb0717f
|
|
91
|
+
ffi (1.17.3-x86-linux-gnu) sha256=868a88fcaf5186c3a46b7c7c2b2c34550e1e61a405670ab23f5b6c9971529089
|
|
92
|
+
ffi (1.17.3-x86-linux-musl) sha256=f0286aa6ef40605cf586e61406c446de34397b85dbb08cc99fdaddaef8343945
|
|
93
|
+
ffi (1.17.3-x86_64-darwin) sha256=1f211811eb5cfaa25998322cdd92ab104bfbd26d1c4c08471599c511f2c00bb5
|
|
94
|
+
ffi (1.17.3-x86_64-linux-gnu) sha256=3746b01f677aae7b16dc1acb7cb3cc17b3e35bdae7676a3f568153fb0e2c887f
|
|
95
|
+
ffi (1.17.3-x86_64-linux-musl) sha256=086b221c3a68320b7564066f46fed23449a44f7a1935f1fe5a245bd89d9aea56
|
|
96
|
+
logger (1.7.0) sha256=196edec7cc44b66cfb40f9755ce11b392f21f7967696af15d274dde7edff0203
|
|
97
|
+
memoist3 (1.0.0) sha256=686e42402cf150a362050c23143dc57b0ef88f8c344943ff8b7845792b50d56f
|
|
98
|
+
mini_mime (1.1.5) sha256=8681b7e2e4215f2a159f9400b5816d85e9d8c6c6b491e96a12797e798f8bccef
|
|
99
|
+
minitest (6.0.1) sha256=7854c74f48e2e975969062833adc4013f249a4b212f5e7b9d5c040bf838d54bb
|
|
100
|
+
multi_test (1.1.0) sha256=e9e550cdd863fb72becfe344aefdcd4cbd26ebf307847f4a6c039a4082324d10
|
|
101
|
+
prism (1.9.0) sha256=7b530c6a9f92c24300014919c9dcbc055bf4cdf51ec30aed099b06cd6674ef85
|
|
102
|
+
sys-uname (1.4.1) sha256=ed2278ec670ee8af5eb5420d3a98e22188051f6241180db7c779993db2739a16
|
|
103
|
+
|
|
104
|
+
BUNDLED WITH
|
|
105
|
+
4.0.5
|
data/README.md
CHANGED
|
@@ -182,6 +182,8 @@ windows:
|
|
|
182
182
|
|
|
183
183
|
`automux test` will use the current directory.
|
|
184
184
|
|
|
185
|
+
`automux test -h` will list the valid options.
|
|
186
|
+
|
|
185
187
|
#### Note
|
|
186
188
|
|
|
187
189
|
* Since the opts are derived from the blueprint, the blueprint name needs to precede the opts as seen in the above commands.
|
|
@@ -253,10 +255,10 @@ This will execute the following steps
|
|
|
253
255
|
* ... tmux startup stuff
|
|
254
256
|
* ... create first window
|
|
255
257
|
* cd automux
|
|
256
|
-
* pwd
|
|
258
|
+
* pwd #=> ~/projects/automux
|
|
257
259
|
* vim
|
|
258
260
|
* ... create second window
|
|
259
|
-
* pwd
|
|
261
|
+
* pwd #=> ~/projects
|
|
260
262
|
|
|
261
263
|
The session/window hooks have access to session and window objects respectively.
|
|
262
264
|
|
|
@@ -314,12 +316,12 @@ cd <%= root %>
|
|
|
314
316
|
= attach_session
|
|
315
317
|
```
|
|
316
318
|
|
|
317
|
-
Its a simpler form of ERB much like [HAML](https://github.com/haml/haml) without indentation. The ERB is evaluated with session's context. Hence all methods defined for session are available here. Custom recipes can be run like so:
|
|
319
|
+
Its a simpler form of ERB, much like [HAML](https://github.com/haml/haml) without indentation sensitivity. The ERB is evaluated with session's context. Hence all methods defined for session are available here. Custom recipes can be run like so:
|
|
318
320
|
|
|
319
321
|
```sh
|
|
320
322
|
$ automux default custom_recipe
|
|
321
323
|
```
|
|
322
|
-
|
|
324
|
+
_Where default is the **default** blueprint name._
|
|
323
325
|
|
|
324
326
|
* Note: The default recipe comes from the Gem and cannot be overwritten. Running `automux default default` will invoke the recipe defined in the Gem instead of any user defined default. The primary reason for this approach is not the burden end users with the necessity to update their default recipe in future releases.
|
|
325
327
|
|
|
@@ -331,6 +333,13 @@ Currently blueprint names can be autocompleted. A dedicated autocompletion shell
|
|
|
331
333
|
complete -W "$(automux blueprint list)" automux
|
|
332
334
|
```
|
|
333
335
|
|
|
336
|
+
## Running tests
|
|
337
|
+
|
|
338
|
+
```sh
|
|
339
|
+
$ bundle install
|
|
340
|
+
$ bundle exec cucumber
|
|
341
|
+
```
|
|
342
|
+
|
|
334
343
|
## Coming Up
|
|
335
344
|
|
|
336
345
|
* Bash Autocompletion for blueprint commands and recipe names.
|
data/automux.gemspec
CHANGED
|
@@ -7,7 +7,7 @@ Gem::Specification.new do |gem|
|
|
|
7
7
|
gem.name = 'automux'
|
|
8
8
|
gem.version = Automux::Version::STRING
|
|
9
9
|
gem.authors = ["Alex Johnson"]
|
|
10
|
-
gem.email = ["
|
|
10
|
+
gem.email = ["github.com/notalex"]
|
|
11
11
|
gem.description = %[Highly configurable Tmux Automator]
|
|
12
12
|
gem.summary = %[Automate tmux sessions stored in yaml files using custom recipes]
|
|
13
13
|
gem.homepage = %[https://github.com/notalex/automux]
|
|
@@ -34,3 +34,17 @@ Feature: Handling various errors with relevant messages
|
|
|
34
34
|
"""
|
|
35
35
|
echo Unable to find blueprint named test_sample.yml
|
|
36
36
|
"""
|
|
37
|
+
|
|
38
|
+
Scenario: Trying incorrect blueprint opts
|
|
39
|
+
Given I have the following blueprint named "test_sample"
|
|
40
|
+
"""
|
|
41
|
+
name: opt-less
|
|
42
|
+
root: '-r'
|
|
43
|
+
"""
|
|
44
|
+
When Automux processes the blueprint "test_sample" with the following options
|
|
45
|
+
| option | value |
|
|
46
|
+
| -n | test |
|
|
47
|
+
Then the rendered sequence of shell commands should contain
|
|
48
|
+
"""
|
|
49
|
+
echo Incorrect option passed. Try -h to check valid options.
|
|
50
|
+
"""
|
|
@@ -33,7 +33,7 @@ In order to run the shell commands matching the given blueprint
|
|
|
33
33
|
tmux start-server
|
|
34
34
|
tmux new-session -d -s test
|
|
35
35
|
|
|
36
|
-
tmux
|
|
36
|
+
tmux move-window -t test:2
|
|
37
37
|
tmux rename-window -t test:2 editor
|
|
38
38
|
|
|
39
39
|
tmux send-keys -t test:2 "ls" C-m
|
|
@@ -43,15 +43,15 @@ In order to run the shell commands matching the given blueprint
|
|
|
43
43
|
tmux send-keys -t test:2 "pwd" C-m
|
|
44
44
|
tmux select-layout -t test:2 main-vertical
|
|
45
45
|
|
|
46
|
-
tmux new-window -t test:3
|
|
46
|
+
tmux new-window -t test:3
|
|
47
47
|
tmux rename-window -t test:3 htop
|
|
48
48
|
tmux send-keys -t test:3 "htop" C-m
|
|
49
49
|
|
|
50
|
-
tmux new-window -t test:1
|
|
50
|
+
tmux new-window -t test:1
|
|
51
51
|
tmux rename-window -t test:1 tester
|
|
52
52
|
tmux send-keys -t test:1 "pwd" C-m
|
|
53
53
|
|
|
54
|
-
tmux new-window -t test:0
|
|
54
|
+
tmux new-window -t test:0
|
|
55
55
|
tmux rename-window -t test:0 zero
|
|
56
56
|
tmux send-keys -t test:0 "pwd" C-m
|
|
57
57
|
tmux split-window
|
|
@@ -81,11 +81,11 @@ In order to run the shell commands matching the given blueprint
|
|
|
81
81
|
tmux start-server
|
|
82
82
|
tmux new-session -d -s test
|
|
83
83
|
|
|
84
|
-
tmux
|
|
84
|
+
tmux move-window -t test:1
|
|
85
85
|
tmux rename-window -t test:1 editor
|
|
86
86
|
tmux send-keys -t test:1 "vim" C-m
|
|
87
87
|
|
|
88
|
-
tmux new-window -t test:1
|
|
88
|
+
tmux new-window -t test:1
|
|
89
89
|
tmux rename-window -t test:1 top
|
|
90
90
|
tmux send-keys -t test:1 "top" C-m
|
|
91
91
|
|
|
@@ -123,7 +123,7 @@ In order to run the shell commands matching the given blueprint
|
|
|
123
123
|
tmux start-server
|
|
124
124
|
tmux new-session -d -s name-less
|
|
125
125
|
|
|
126
|
-
tmux
|
|
126
|
+
tmux move-window -t name-less:0
|
|
127
127
|
tmux send-keys -t name-less:0 "git pull origin master" C-m
|
|
128
128
|
|
|
129
129
|
tmux attach-session -t name-less
|
|
@@ -145,7 +145,7 @@ In order to run the shell commands matching the given blueprint
|
|
|
145
145
|
tmux start-server
|
|
146
146
|
tmux -u2 new-session -d -s flagged
|
|
147
147
|
|
|
148
|
-
tmux
|
|
148
|
+
tmux move-window -t flagged:0
|
|
149
149
|
tmux send-keys -t flagged:0 "vim" C-m
|
|
150
150
|
|
|
151
151
|
tmux -u2 attach-session -t flagged
|
|
@@ -169,11 +169,11 @@ In order to run the shell commands matching the given blueprint
|
|
|
169
169
|
tmux start-server
|
|
170
170
|
tmux new-session -d -s test
|
|
171
171
|
|
|
172
|
-
tmux
|
|
172
|
+
tmux move-window -t test:0
|
|
173
173
|
tmux send-keys -t test:0 "cd projects" C-m
|
|
174
174
|
tmux send-keys -t test:0 "vim" C-m
|
|
175
175
|
|
|
176
|
-
tmux new-window -t test:1
|
|
176
|
+
tmux new-window -t test:1
|
|
177
177
|
tmux send-keys -t test:1 "top" C-m
|
|
178
178
|
|
|
179
179
|
tmux attach-session -t test
|
data/features/hooks.feature
CHANGED
|
@@ -25,11 +25,11 @@ Feature: Using pre and post hooks for session
|
|
|
25
25
|
tmux start-server
|
|
26
26
|
tmux new-session -d -s hooked
|
|
27
27
|
|
|
28
|
-
tmux
|
|
28
|
+
tmux move-window -t hooked:0
|
|
29
29
|
tmux rename-window -t hooked:0 one
|
|
30
30
|
tmux send-keys -t hooked:0 "" C-m
|
|
31
31
|
|
|
32
|
-
tmux new-window -t hooked:1
|
|
32
|
+
tmux new-window -t hooked:1
|
|
33
33
|
tmux rename-window -t hooked:1 two
|
|
34
34
|
tmux send-keys -t hooked:1 "" C-m
|
|
35
35
|
|
|
@@ -65,10 +65,10 @@ Feature: Using pre and post hooks for session
|
|
|
65
65
|
tmux start-server
|
|
66
66
|
tmux new-session -d -s hooked
|
|
67
67
|
|
|
68
|
-
tmux
|
|
68
|
+
tmux move-window -t hooked:0
|
|
69
69
|
tmux send-keys -t hooked:0 "pwd" C-m
|
|
70
70
|
|
|
71
|
-
tmux new-window -t hooked:1
|
|
71
|
+
tmux new-window -t hooked:1
|
|
72
72
|
tmux rename-window -t hooked:1 echoed-window
|
|
73
73
|
|
|
74
74
|
tmux send-keys -t hooked:1 "echo echoed-window start" C-m
|
|
@@ -42,7 +42,7 @@ Feature: Providing runtime options for blueprints
|
|
|
42
42
|
tmux start-server
|
|
43
43
|
tmux new-session -d -s test
|
|
44
44
|
|
|
45
|
-
tmux
|
|
45
|
+
tmux move-window -t test:0
|
|
46
46
|
tmux rename-window -t test:0 git
|
|
47
47
|
tmux send-keys -t test:0 "git pull origin master" C-m
|
|
48
48
|
|
|
@@ -72,11 +72,11 @@ Feature: Providing runtime options for blueprints
|
|
|
72
72
|
tmux start-server
|
|
73
73
|
tmux new-session -d -s test
|
|
74
74
|
|
|
75
|
-
tmux
|
|
75
|
+
tmux move-window -t test:0
|
|
76
76
|
tmux rename-window -t test:0 vim
|
|
77
77
|
tmux send-keys -t test:0 "vim" C-m
|
|
78
78
|
|
|
79
|
-
tmux new-window -t test:1
|
|
79
|
+
tmux new-window -t test:1
|
|
80
80
|
tmux rename-window -t test:1 top
|
|
81
81
|
tmux send-keys -t test:1 "top" C-m
|
|
82
82
|
|
|
@@ -26,7 +26,7 @@ Feature: Handling session/window specific options
|
|
|
26
26
|
tmux set-option status-left '#S>'
|
|
27
27
|
tmux set-option status 'off'
|
|
28
28
|
|
|
29
|
-
tmux
|
|
29
|
+
tmux move-window -t test:0
|
|
30
30
|
tmux send-keys -t test:0 "pwd" C-m
|
|
31
31
|
|
|
32
32
|
tmux set-window-option -t test:0 automatic-rename 'off'
|
|
@@ -57,10 +57,10 @@ Feature: Handling session/window specific options
|
|
|
57
57
|
|
|
58
58
|
tmux set-option base-index '2'
|
|
59
59
|
|
|
60
|
-
tmux
|
|
60
|
+
tmux move-window -t test:2
|
|
61
61
|
tmux send-keys -t test:2 "pwd" C-m
|
|
62
62
|
|
|
63
|
-
tmux new-window -t test:3
|
|
63
|
+
tmux new-window -t test:3
|
|
64
64
|
tmux send-keys -t test:3 "ls" C-m
|
|
65
65
|
|
|
66
66
|
tmux attach-session -t test
|
|
@@ -13,6 +13,6 @@ Then(/^the window with the name "(.+)" should have the following$/) do |name, ta
|
|
|
13
13
|
window = @session.windows.find { |window| window.name == name }
|
|
14
14
|
params = common_transformations(table.hashes).first
|
|
15
15
|
params.each do |field, value|
|
|
16
|
-
window.public_send(field)
|
|
16
|
+
assert_equal value, window.public_send(field)
|
|
17
17
|
end
|
|
18
18
|
end
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
Given(/^I have the following blueprint named "(.+)"$/) do |name, string|
|
|
2
2
|
path = File.join(Automux::Paths.blueprints_container, "#{ name }.yml")
|
|
3
|
+
FileUtils.mkdir_p(File.dirname(path))
|
|
3
4
|
File.open(path, 'w') { |f| f.write(string) }
|
|
4
5
|
end
|
|
5
6
|
|
|
@@ -49,5 +50,6 @@ end
|
|
|
49
50
|
|
|
50
51
|
Given(/^I have the following recipe named "(.+)"$/) do |name, string|
|
|
51
52
|
path = File.join(Automux::Paths.recipes_container, "#{ name }.sh.erb")
|
|
53
|
+
FileUtils.mkdir_p(File.dirname(path))
|
|
52
54
|
File.open(path, 'w') { |f| f.write(string) }
|
|
53
55
|
end
|
data/features/support/env.rb
CHANGED
data/features/support/hooks.rb
CHANGED
|
@@ -44,13 +44,26 @@ module Automux
|
|
|
44
44
|
end
|
|
45
45
|
|
|
46
46
|
def new_window(window)
|
|
47
|
-
%[tmux new-window -t #{ name }:#{ window.index }
|
|
47
|
+
%[tmux new-window -t #{ name }:#{ window.index }]
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
# The first window is created alongwith new-session and thus needs to be moved to its correct index.
|
|
51
|
+
def move_first_window_or_create_new(window)
|
|
52
|
+
if window == windows.first
|
|
53
|
+
move_window(window.index)
|
|
54
|
+
else
|
|
55
|
+
new_window(window)
|
|
56
|
+
end
|
|
48
57
|
end
|
|
49
58
|
|
|
50
59
|
def rename_window(window, window_name = window.name)
|
|
51
60
|
%[tmux rename-window -t #{ name }:#{ window.index } #{ window_name }]
|
|
52
61
|
end
|
|
53
62
|
|
|
63
|
+
def move_window(index)
|
|
64
|
+
%[tmux move-window -t #{ name }:#{ index }]
|
|
65
|
+
end
|
|
66
|
+
|
|
54
67
|
def send_keys(identifier, command)
|
|
55
68
|
window = get_window(identifier)
|
|
56
69
|
%[tmux send-keys -t #{ name }:#{ window.index } "#{ command }" C-m]
|
|
@@ -18,6 +18,8 @@ module Automux
|
|
|
18
18
|
def get_options
|
|
19
19
|
blueprint = Automux::Cache::Blueprint.find_by_name(blueprint_name)
|
|
20
20
|
Automux::Library::FileOptionsParser.new(blueprint.path).getopts
|
|
21
|
+
rescue OptionParser::InvalidOption
|
|
22
|
+
Automux::Controller::Messages.new(message: 'Incorrect option passed. Try -h to check valid options.').error
|
|
21
23
|
end
|
|
22
24
|
|
|
23
25
|
def params
|
data/lib/automux/version.rb
CHANGED
data/test/command_line.rb
CHANGED
data/test/session_test.rb
CHANGED
|
@@ -7,7 +7,7 @@ describe 'Session' do
|
|
|
7
7
|
end
|
|
8
8
|
|
|
9
9
|
session = setup_session_with_windows(windows_data)
|
|
10
|
-
session.window_indexes.must_equal [2, 3, 1, 0]
|
|
10
|
+
_(session.window_indexes).must_equal [2, 3, 1, 0]
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
it "should assign overwrite conflicting indexes" do
|
|
@@ -16,6 +16,6 @@ describe 'Session' do
|
|
|
16
16
|
end
|
|
17
17
|
|
|
18
18
|
session = setup_session_with_windows(windows_data)
|
|
19
|
-
session.window_indexes.must_equal [0, 2, 1, 1]
|
|
19
|
+
_(session.window_indexes).must_equal [0, 2, 1, 1]
|
|
20
20
|
end
|
|
21
21
|
end
|
metadata
CHANGED
|
@@ -1,25 +1,23 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: automux
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
5
|
-
prerelease:
|
|
4
|
+
version: 1.0.0
|
|
6
5
|
platform: ruby
|
|
7
6
|
authors:
|
|
8
7
|
- Alex Johnson
|
|
9
|
-
autorequire:
|
|
10
8
|
bindir: bin
|
|
11
9
|
cert_chain: []
|
|
12
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
13
11
|
dependencies: []
|
|
14
12
|
description: Highly configurable Tmux Automator
|
|
15
13
|
email:
|
|
16
|
-
-
|
|
14
|
+
- github.com/notalex
|
|
17
15
|
executables:
|
|
18
16
|
- automux
|
|
19
17
|
extensions: []
|
|
20
18
|
extra_rdoc_files: []
|
|
21
19
|
files:
|
|
22
|
-
- .gitignore
|
|
20
|
+
- ".gitignore"
|
|
23
21
|
- Gemfile
|
|
24
22
|
- Gemfile.lock
|
|
25
23
|
- LICENSE.txt
|
|
@@ -106,35 +104,28 @@ files:
|
|
|
106
104
|
homepage: https://github.com/notalex/automux
|
|
107
105
|
licenses:
|
|
108
106
|
- MIT License
|
|
109
|
-
|
|
110
|
-
|
|
107
|
+
metadata: {}
|
|
108
|
+
post_install_message: |
|
|
109
|
+
********************************************************************************
|
|
111
110
|
Please run the following the following command to setup default Automux folders:
|
|
112
|
-
|
|
113
111
|
$ automux setup
|
|
114
|
-
|
|
115
112
|
********************************************************************************
|
|
116
|
-
|
|
117
|
-
'
|
|
118
113
|
rdoc_options: []
|
|
119
114
|
require_paths:
|
|
120
115
|
- lib
|
|
121
116
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
122
|
-
none: false
|
|
123
117
|
requirements:
|
|
124
|
-
- -
|
|
118
|
+
- - ">="
|
|
125
119
|
- !ruby/object:Gem::Version
|
|
126
120
|
version: '0'
|
|
127
121
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
128
|
-
none: false
|
|
129
122
|
requirements:
|
|
130
|
-
- -
|
|
123
|
+
- - ">="
|
|
131
124
|
- !ruby/object:Gem::Version
|
|
132
125
|
version: '0'
|
|
133
126
|
requirements: []
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
signing_key:
|
|
137
|
-
specification_version: 3
|
|
127
|
+
rubygems_version: 3.6.9
|
|
128
|
+
specification_version: 4
|
|
138
129
|
summary: Automate tmux sessions stored in yaml files using custom recipes
|
|
139
130
|
test_files:
|
|
140
131
|
- features/custom_recipes.feature
|