teamocil 0.4.2 → 0.4.3
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 +8 -8
- data/README.md +5 -3
- data/lib/teamocil/cli.rb +1 -1
- data/lib/teamocil/layout/pane.rb +7 -2
- data/lib/teamocil/layout/session.rb +1 -1
- data/lib/teamocil/version.rb +1 -1
- data/spec/cli_spec.rb +1 -1
- data/spec/layout_spec.rb +24 -6
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
ODJmMjkwMjQ4MmNjMzY2NjczMzBhNGI0NWFmOWRjMzVmNjFmZGQ1NA==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
NTgzZDZmMDkwNTlkOWY0NGU1MjQ5ZDJhY2FhMTExYTU4ZGY1ZmQ0YQ==
|
7
7
|
!binary "U0hBNTEy":
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
Y2YwMDYyNGM4ZmQ5ODQwMjA1MTBiZDUyNDVjYjE3MDQ4MWJkNmQ3NjAyZjcz
|
10
|
+
MGQ5MjE0NWYyNTUxMDRkMjBhMDFkYTdkMzFkMmUxNTI2YmJkOWJiNThlMTk2
|
11
|
+
NTZmYzViZjFiY2JkMTdmMWIxNmYwOWE0YWViNTM5Y2I5MDdkMWY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
ODhkNDZkMWNmMTc5NzM3YTdiM2ViZjAxYmQyZTg0MmRiN2ZlY2U1MmQ4OTc1
|
14
|
+
ZWZjODE1MzEyNTIxNjhmMTA4ODc0NDM3NTQ2NDlhODlmMWIxOGQ3YmZlYTc1
|
15
|
+
YTYwMjkyMTNiYjVjNDBjMzcxMTJjYjdkNzBlMjFlZjY0NGZlNzI=
|
data/README.md
CHANGED
@@ -231,9 +231,11 @@ windows:
|
|
231
231
|
|
232
232
|
Feel free to contribute and submit issues/pull requests [on GitHub](https://github.com/remiprev/teamocil/issues), just like these fine folks did:
|
233
233
|
|
234
|
-
*
|
235
|
-
*
|
236
|
-
*
|
234
|
+
* [@garno](https://github.com/garno)
|
235
|
+
* [@jbourassa](https://github.com/jbourassa)
|
236
|
+
* [@bdimcheff](https://github.com/bdimcheff)
|
237
|
+
* [@jscheel](https://github.com/jscheel)
|
238
|
+
* [@mklappstuhl](https://github.com/mklappstuhl)
|
237
239
|
|
238
240
|
Take a look at the `spec` folder before you do, and make sure `bundle exec rake spec` passes after your modifications :)
|
239
241
|
|
data/lib/teamocil/cli.rb
CHANGED
@@ -24,7 +24,7 @@ module Teamocil
|
|
24
24
|
|
25
25
|
if @options[:edit]
|
26
26
|
::FileUtils.touch file unless File.exists?(file)
|
27
|
-
Kernel.system("$EDITOR \"#{file}\"")
|
27
|
+
Kernel.system("${EDITOR:-vim} \"#{file}\"")
|
28
28
|
elsif @options[:show]
|
29
29
|
::FileUtils.touch file unless File.exists?(file)
|
30
30
|
Kernel.system("cat \"#{file}\"")
|
data/lib/teamocil/layout/pane.rb
CHANGED
@@ -48,10 +48,15 @@ module Teamocil
|
|
48
48
|
@cmd.unshift "cd \"#{@window.root}\"" unless @window.root.nil?
|
49
49
|
|
50
50
|
# Set the TEAMOCIL environment variable
|
51
|
-
|
51
|
+
# depending on the shell set in ENV
|
52
|
+
if ENV['SHELL'].scan(/fish/).empty?
|
53
|
+
@cmd.unshift "export TEAMOCIL=1"
|
54
|
+
else
|
55
|
+
@cmd.unshift "set -gx TEAMOCIL 1"
|
56
|
+
end
|
52
57
|
|
53
58
|
# Execute each pane command
|
54
|
-
commands << "tmux send-keys -t #{@index} \"#{@cmd.flatten.compact.join("
|
59
|
+
commands << "tmux send-keys -t #{@index} \"#{@cmd.flatten.compact.join("; ")}\""
|
55
60
|
commands << "tmux send-keys -t #{@index} Enter"
|
56
61
|
|
57
62
|
commands
|
@@ -10,7 +10,7 @@ module Teamocil
|
|
10
10
|
# @param attrs [Hash] the session data from the layout file
|
11
11
|
def initialize(options, attrs={})
|
12
12
|
raise Teamocil::Error::LayoutError.new("You must specify a `windows` or `session` key for your layout.") unless attrs["windows"]
|
13
|
-
@name = attrs["name"] || "teamocil-session"
|
13
|
+
@name = attrs["name"] || "teamocil-session-#{rand(10000) + 1}"
|
14
14
|
@windows = attrs["windows"].each_with_index.map { |window, window_index| Window.new(self, window_index, window) }
|
15
15
|
@options = options
|
16
16
|
end
|
data/lib/teamocil/version.rb
CHANGED
data/spec/cli_spec.rb
CHANGED
@@ -13,7 +13,7 @@ describe Teamocil::CLI do
|
|
13
13
|
context "not in tmux" do
|
14
14
|
it "should allow editing" do
|
15
15
|
FileUtils.stub(:touch)
|
16
|
-
Kernel.should_receive(:system).with("$EDITOR #{File.join(@fake_env["HOME"], ".teamocil", "my-layout.yml").inspect}")
|
16
|
+
Kernel.should_receive(:system).with("${EDITOR:-vim} #{File.join(@fake_env["HOME"], ".teamocil", "my-layout.yml").inspect}")
|
17
17
|
Teamocil::CLI.new(["--edit", "my-layout"], @fake_env)
|
18
18
|
end
|
19
19
|
end
|
data/spec/layout_spec.rb
CHANGED
@@ -3,7 +3,10 @@ require File.join(File.dirname(__FILE__), "spec_helper.rb")
|
|
3
3
|
|
4
4
|
describe Teamocil::Layout do
|
5
5
|
let(:window_pane_base_index) { 0 }
|
6
|
-
before
|
6
|
+
before do
|
7
|
+
Teamocil::Layout::Window.any_instance.stub(:pane_base_index).and_return(window_pane_base_index)
|
8
|
+
ENV.stub(:[]).with("SHELL").and_return("/usr/bin/bash")
|
9
|
+
end
|
7
10
|
|
8
11
|
context "compiling" do
|
9
12
|
before do
|
@@ -145,6 +148,12 @@ describe Teamocil::Layout do
|
|
145
148
|
session.windows.length.should == 3
|
146
149
|
session.name.should == "my awesome session"
|
147
150
|
end
|
151
|
+
|
152
|
+
it "should assign a random name if none is provided" do
|
153
|
+
layout = Teamocil::Layout.new(layouts["two-windows"], {})
|
154
|
+
session = layout.compile!
|
155
|
+
session.name.should match /teamocil-session-\d+/
|
156
|
+
end
|
148
157
|
end
|
149
158
|
end
|
150
159
|
|
@@ -155,13 +164,13 @@ describe Teamocil::Layout do
|
|
155
164
|
session = @layout.compile!
|
156
165
|
commands = session.windows.last.panes[0].generate_commands
|
157
166
|
commands.length.should == 2
|
158
|
-
commands.first.should == "tmux send-keys -t 0 \"export TEAMOCIL=1
|
167
|
+
commands.first.should == "tmux send-keys -t 0 \"export TEAMOCIL=1; cd \"/bar\"; echo 'bar'; echo 'bar in an array'\""
|
159
168
|
commands.last.should == "tmux send-keys -t 0 Enter"
|
160
169
|
|
161
170
|
session = @layout.compile!
|
162
171
|
commands = session.windows.first.panes[0].generate_commands
|
163
172
|
commands.length.should == 2
|
164
|
-
commands.first.should == "tmux send-keys -t 0 \"export TEAMOCIL=1
|
173
|
+
commands.first.should == "tmux send-keys -t 0 \"export TEAMOCIL=1; cd \"/foo\"; clear; echo 'foo'\""
|
165
174
|
commands.last.should == "tmux send-keys -t 0 Enter"
|
166
175
|
end
|
167
176
|
|
@@ -175,8 +184,17 @@ describe Teamocil::Layout do
|
|
175
184
|
it "should apply the layout after each pane is created" do
|
176
185
|
session = @layout.compile!
|
177
186
|
commands = session.windows.first.generate_commands
|
178
|
-
commands[1][0].should == ["tmux send-keys -t 0 \"export TEAMOCIL=1
|
179
|
-
commands[1][1].should == ["tmux split-window", "tmux send-keys -t 1 \"export TEAMOCIL=1
|
187
|
+
commands[1][0].should == ["tmux send-keys -t 0 \"export TEAMOCIL=1; cd \"/foo\"; clear; echo 'foo'\"", "tmux send-keys -t 0 Enter", "tmux select-layout \"tiled\""]
|
188
|
+
commands[1][1].should == ["tmux split-window", "tmux send-keys -t 1 \"export TEAMOCIL=1; cd \"/foo\"; clear; echo 'foo again'\"", "tmux send-keys -t 1 Enter", "tmux select-layout \"tiled\""]
|
189
|
+
end
|
190
|
+
|
191
|
+
it "should use fish syntax when fish shell is default shell" do
|
192
|
+
ENV.stub(:[]).with("SHELL").and_return("/usr/local/bin/fish")
|
193
|
+
session = @layout.compile!
|
194
|
+
commands = session.windows.last.panes[0].generate_commands
|
195
|
+
commands.length.should == 2
|
196
|
+
commands.first.should == "tmux send-keys -t 0 \"set -gx TEAMOCIL 1; cd \"/bar\"; echo 'bar'; echo 'bar in an array'\""
|
197
|
+
commands.last.should == "tmux send-keys -t 0 Enter"
|
180
198
|
end
|
181
199
|
|
182
200
|
context "with custom pane-base-index option" do
|
@@ -186,7 +204,7 @@ describe Teamocil::Layout do
|
|
186
204
|
session = @layout.compile!
|
187
205
|
commands = session.windows.last.panes[0].generate_commands
|
188
206
|
commands.length.should == 2
|
189
|
-
commands.first.should == "tmux send-keys -t 2 \"export TEAMOCIL=1
|
207
|
+
commands.first.should == "tmux send-keys -t 2 \"export TEAMOCIL=1; cd \"/bar\"; echo 'bar'; echo 'bar in an array'\""
|
190
208
|
commands.last.should == "tmux send-keys -t 2 Enter"
|
191
209
|
end
|
192
210
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: teamocil
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.4.
|
4
|
+
version: 0.4.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Rémi Prévost
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-04-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rake
|