heytmux 0.1.1 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/README.md +2 -1
- data/exe/heytmux +3 -2
- data/heytmux.gemspec +7 -8
- data/lib/heytmux.rb +1 -0
- data/lib/heytmux/core.rb +8 -6
- data/lib/heytmux/version.rb +1 -1
- metadata +22 -37
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: fe3e03ac69a2016e30bea5cd11e8bb8dd367ea4acc7e9a6402185201f5a66e7c
|
4
|
+
data.tar.gz: 170eca1fda547fdd1b13b2a0e684903a5cea2f9812f993e6a9418e694e8f66f9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f0287d21b34ced56d79fe24fa96dcf6efbc8985469df7ddd6a83103b9823e0911c000257af71c3f7148365bff15384884fb0bfb78bfa6ffdd20253a6b5ba7ea4
|
7
|
+
data.tar.gz: 8a73271ceb4baf815354603ec4edbe45a5ec43ab272ecba00c5559acfbec6b71f066fb81e6bd4e1fb82c4be5250a0bcc9e8fc2ae4e4f9a15e43d5e6a49c44533
|
data/README.md
CHANGED
@@ -221,7 +221,7 @@ expanded according to the list.
|
|
221
221
|
- pane {{item}}: sleep {{item}}
|
222
222
|
```
|
223
223
|
|
224
|
-
Note that you have to quote a pane title if it starts with `{{
|
224
|
+
Note that you have to quote a pane title if it starts with `{{`.
|
225
225
|
|
226
226
|
This is often useful when you have to work with a series of log files or with
|
227
227
|
a set of servers.
|
@@ -238,6 +238,7 @@ a set of servers.
|
|
238
238
|
- ssh user@{{item}} tail -f /var/log/server-{{item}}.log
|
239
239
|
```
|
240
240
|
|
241
|
+
Also note that `{{ item.index }}` expands to zero-based index of the item.
|
241
242
|
|
242
243
|
#### Referring to environment variables
|
243
244
|
|
data/exe/heytmux
CHANGED
@@ -1,4 +1,5 @@
|
|
1
1
|
#!/usr/bin/env ruby
|
2
|
+
# frozen_string_literal: true
|
2
3
|
|
3
4
|
require 'heytmux'
|
4
5
|
|
@@ -17,13 +18,13 @@ if (unreadable = ARGV.find { |f| !File.readable?(f) })
|
|
17
18
|
end
|
18
19
|
|
19
20
|
require 'yaml'
|
20
|
-
strings = [$stdin.tty? ? nil : ['standard input', $stdin.read],
|
21
|
+
strings = [ARGV.any? || $stdin.tty? ? nil : ['standard input', $stdin.read],
|
21
22
|
*ARGV.map { |f| [f, File.read(f)] }].compact
|
22
23
|
specs = strings.map do |name, str|
|
23
24
|
begin
|
24
25
|
str = Heytmux.replace_env_vars(str)
|
25
26
|
YAML.respond_to?(:safe_load) ? YAML.safe_load(str) : YAML.load(str)
|
26
|
-
rescue => e
|
27
|
+
rescue StandardError => e
|
27
28
|
abort("Failed to parse #{name}: #{e}")
|
28
29
|
end
|
29
30
|
end
|
data/heytmux.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
|
-
#
|
1
|
+
# frozen_string_literal: true
|
2
2
|
|
3
|
-
lib = File.expand_path('
|
3
|
+
lib = File.expand_path('lib', __dir__)
|
4
4
|
$LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
|
5
5
|
require 'heytmux/version'
|
6
6
|
|
@@ -21,11 +21,10 @@ Gem::Specification.new do |spec|
|
|
21
21
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
22
22
|
spec.require_paths = ['lib']
|
23
23
|
|
24
|
-
spec.required_ruby_version = '>= 2.
|
25
|
-
spec.add_development_dependency 'bundler', '
|
26
|
-
spec.add_development_dependency '
|
27
|
-
spec.add_development_dependency 'minitest'
|
24
|
+
spec.required_ruby_version = '>= 2.4'
|
25
|
+
spec.add_development_dependency 'bundler', '>= 2.2.15'
|
26
|
+
spec.add_development_dependency 'coveralls_reborn'
|
27
|
+
spec.add_development_dependency 'minitest'
|
28
28
|
spec.add_development_dependency 'pry'
|
29
|
-
spec.add_development_dependency '
|
30
|
-
spec.add_development_dependency 'coveralls'
|
29
|
+
spec.add_development_dependency 'rake', '~> 12.0'
|
31
30
|
end
|
data/lib/heytmux.rb
CHANGED
data/lib/heytmux/core.rb
CHANGED
@@ -71,12 +71,13 @@ module Heytmux
|
|
71
71
|
|
72
72
|
# Finds appropriate PaneActions for the commands and processes them
|
73
73
|
def process_command!(window_index, pane)
|
74
|
-
pane_index, item, commands =
|
74
|
+
pane_index, item, item_index, commands =
|
75
|
+
pane.values_at(:index, :item, :item_index, :command)
|
75
76
|
[*commands].compact.each do |command|
|
76
77
|
label, body = command.is_a?(Hash) ? command.first : [:paste, command]
|
77
78
|
PaneAction.for(label).process(window_index, pane_index, body) do |source|
|
78
79
|
string = source.to_s
|
79
|
-
item ? string.gsub(ITEM_PAT, item) : string
|
80
|
+
item ? string.gsub(ITEM_PAT, item).gsub(ITEM_INDEX_PAT, item_index.to_s) : string
|
80
81
|
end
|
81
82
|
end
|
82
83
|
end
|
@@ -141,11 +142,12 @@ module Heytmux
|
|
141
142
|
|
142
143
|
def interpret_and_expand_pane_spec(pane, items, pane_indexer)
|
143
144
|
title, command = pane.is_a?(Hash) ? pane.first : [pane.tr("\n", ' '), pane]
|
144
|
-
if title =~ ITEM_PAT
|
145
|
-
items.map do |item|
|
146
|
-
title_sub = title.gsub(ITEM_PAT, item.to_s)
|
145
|
+
if title =~ ITEM_PAT || title =~ ITEM_INDEX_PAT
|
146
|
+
items.map.with_index do |item, item_idx|
|
147
|
+
title_sub = title.gsub(ITEM_PAT, item.to_s).gsub(ITEM_INDEX_PAT, item_idx.to_s)
|
147
148
|
{ title: title_sub, command: command,
|
148
|
-
item: item.to_s,
|
149
|
+
item: item.to_s, item_index: item_idx,
|
150
|
+
index: pane_indexer[title_sub] }
|
149
151
|
end
|
150
152
|
else
|
151
153
|
[{ title: title, command: command, index: pane_indexer[title] }]
|
data/lib/heytmux/version.rb
CHANGED
metadata
CHANGED
@@ -1,59 +1,45 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: heytmux
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Junegunn Choi
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-04-30 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - "
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version:
|
19
|
+
version: 2.2.15
|
20
20
|
type: :development
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - "
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
|
-
version:
|
26
|
+
version: 2.2.15
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
|
-
name:
|
28
|
+
name: coveralls_reborn
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - "
|
31
|
+
- - ">="
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: '
|
33
|
+
version: '0'
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - "
|
38
|
+
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: '
|
40
|
+
version: '0'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: minitest
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - "~>"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '5.10'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - "~>"
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '5.10'
|
55
|
-
- !ruby/object:Gem::Dependency
|
56
|
-
name: pry
|
57
43
|
requirement: !ruby/object:Gem::Requirement
|
58
44
|
requirements:
|
59
45
|
- - ">="
|
@@ -67,7 +53,7 @@ dependencies:
|
|
67
53
|
- !ruby/object:Gem::Version
|
68
54
|
version: '0'
|
69
55
|
- !ruby/object:Gem::Dependency
|
70
|
-
name:
|
56
|
+
name: pry
|
71
57
|
requirement: !ruby/object:Gem::Requirement
|
72
58
|
requirements:
|
73
59
|
- - ">="
|
@@ -81,19 +67,19 @@ dependencies:
|
|
81
67
|
- !ruby/object:Gem::Version
|
82
68
|
version: '0'
|
83
69
|
- !ruby/object:Gem::Dependency
|
84
|
-
name:
|
70
|
+
name: rake
|
85
71
|
requirement: !ruby/object:Gem::Requirement
|
86
72
|
requirements:
|
87
|
-
- - "
|
73
|
+
- - "~>"
|
88
74
|
- !ruby/object:Gem::Version
|
89
|
-
version: '0'
|
75
|
+
version: '12.0'
|
90
76
|
type: :development
|
91
77
|
prerelease: false
|
92
78
|
version_requirements: !ruby/object:Gem::Requirement
|
93
79
|
requirements:
|
94
|
-
- - "
|
80
|
+
- - "~>"
|
95
81
|
- !ruby/object:Gem::Version
|
96
|
-
version: '0'
|
82
|
+
version: '12.0'
|
97
83
|
description: Tmux scripting made easy
|
98
84
|
email:
|
99
85
|
- junegunn.c@gmail.com
|
@@ -121,7 +107,7 @@ files:
|
|
121
107
|
homepage: https://github.com/junegunn/heytmux
|
122
108
|
licenses: []
|
123
109
|
metadata: {}
|
124
|
-
post_install_message:
|
110
|
+
post_install_message:
|
125
111
|
rdoc_options: []
|
126
112
|
require_paths:
|
127
113
|
- lib
|
@@ -129,16 +115,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
129
115
|
requirements:
|
130
116
|
- - ">="
|
131
117
|
- !ruby/object:Gem::Version
|
132
|
-
version: '2.
|
118
|
+
version: '2.4'
|
133
119
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
134
120
|
requirements:
|
135
121
|
- - ">="
|
136
122
|
- !ruby/object:Gem::Version
|
137
123
|
version: '0'
|
138
124
|
requirements: []
|
139
|
-
|
140
|
-
|
141
|
-
signing_key:
|
125
|
+
rubygems_version: 3.2.15
|
126
|
+
signing_key:
|
142
127
|
specification_version: 4
|
143
128
|
summary: Hey tmux!
|
144
129
|
test_files: []
|