heytmux 0.1.1 → 0.2.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 +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: []
|