rtmux 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/bin/rtmux +20 -18
- data/lib/rtmux.rb +14 -6
- metadata +6 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 19e937ca015c569ee18267d86b232c463ca92ee8
|
4
|
+
data.tar.gz: 0b76e33d35ca8d0cb142c83b7ce1e5d33d5a7011
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a92540ba3dd8af19ff56d0f62b848dff937b9e23fdfbf7766b29f5e85af75a9ca3c48a25530085d758c4b32294341bf38aab1a43c4aa34055f915b5cd8b3c49c
|
7
|
+
data.tar.gz: 9031884f5fafbdaa40b82cff26935c2d6e41f829abecd5b4b3cfa35acfc9049f8c961b2687779a27d010de3c2d440a6d65041ce6c2c0d6f9016cb007438bd999
|
data/bin/rtmux
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
# excutable for rtmux.rb
|
7
7
|
#
|
8
8
|
# created on : 2013.08.12
|
9
|
-
# last update: 2013.
|
9
|
+
# last update: 2013.10.16
|
10
10
|
#
|
11
11
|
# by meinside@gmail.com
|
12
12
|
|
@@ -15,16 +15,17 @@ require "thor"
|
|
15
15
|
|
16
16
|
require "rtmux"
|
17
17
|
|
18
|
+
# rtmux module
|
18
19
|
module RTmux
|
19
20
|
|
20
|
-
CONFIG_FILEPATH = File.expand_path("
|
21
|
+
CONFIG_FILEPATH = File.expand_path(File.join("~", ".rtmux.conf"))
|
21
22
|
|
22
23
|
# predefined variables:
|
23
24
|
# %d: current directory(where this script is run)'s name
|
24
25
|
# %h: host name
|
25
|
-
# %Y: year (eg.
|
26
|
-
# %M: month (eg.
|
27
|
-
# %D: day (eg.
|
26
|
+
# %Y: year (eg. 2013)
|
27
|
+
# %M: month (eg. 10)
|
28
|
+
# %D: day (eg. 16)
|
28
29
|
RTMUX_CONFIG_EXAMPLE = <<EXAMPLE
|
29
30
|
---
|
30
31
|
rails: # for rails projects
|
@@ -57,7 +58,7 @@ EXAMPLE
|
|
57
58
|
# @param txt [String] text
|
58
59
|
# @return [String] replaced text
|
59
60
|
def self.replace(txt)
|
60
|
-
|
61
|
+
if !txt
|
61
62
|
nil
|
62
63
|
else
|
63
64
|
txt
|
@@ -83,6 +84,7 @@ EXAMPLE
|
|
83
84
|
return nil
|
84
85
|
end
|
85
86
|
|
87
|
+
# executable class
|
86
88
|
class Exec < Thor
|
87
89
|
desc "launch [SESSION]", "Starts/resumes a session with given SESSION name"
|
88
90
|
long_desc <<LAUNCH_DESC
|
@@ -112,27 +114,27 @@ LAUNCH_DESC
|
|
112
114
|
# read config
|
113
115
|
if File.exists? CONFIG_FILEPATH
|
114
116
|
puts "> Loading config file: #{CONFIG_FILEPATH}" if verbose
|
115
|
-
configs = RTmux
|
117
|
+
configs = RTmux.parse_config(CONFIG_FILEPATH) || {}
|
116
118
|
else
|
117
119
|
puts "> Loading sample config" if verbose
|
118
|
-
configs = RTmux
|
120
|
+
configs = RTmux.parse_config(RTMUX_CONFIG_EXAMPLE) || {}
|
119
121
|
end
|
120
122
|
config = configs[session] || {}
|
121
123
|
|
122
124
|
# create/resume session
|
123
|
-
RTmux::TmuxHelper.new(RTmux
|
125
|
+
RTmux::TmuxHelper.new(RTmux.replace(config["session_name"]) || session){|tmux|
|
124
126
|
unless tmux.session_created?
|
125
127
|
# create, split windows and run commands in them
|
126
|
-
if windows = config["windows"]
|
128
|
+
if (windows = config["windows"])
|
127
129
|
windows.each{|window|
|
128
|
-
window_name = RTmux
|
129
|
-
tmux.create_window(window_name, cmd: RTmux
|
130
|
+
window_name = RTmux.replace(window["name"])
|
131
|
+
tmux.create_window(window_name, cmd: RTmux.replace(window["cmd"]))
|
130
132
|
|
131
|
-
if split = window["split"]
|
133
|
+
if (split = window["split"])
|
132
134
|
tmux.split(window_name, vertical: split["vertical"], percentage: split["percentage"])
|
133
|
-
if panes = split["panes"]
|
135
|
+
if (panes = split["panes"])
|
134
136
|
panes.each{|pane|
|
135
|
-
tmux.cmd(RTmux
|
137
|
+
tmux.cmd(RTmux.replace(pane["cmd"]), window_name, pane: pane["pane"])
|
136
138
|
}
|
137
139
|
end
|
138
140
|
end
|
@@ -142,8 +144,8 @@ LAUNCH_DESC
|
|
142
144
|
end
|
143
145
|
|
144
146
|
# focus on window
|
145
|
-
if focus = config["focus"]
|
146
|
-
tmux.focus(RTmux
|
147
|
+
if (focus = config["focus"])
|
148
|
+
tmux.focus(RTmux.replace(focus["name"]), pane: focus["pane"])
|
147
149
|
end
|
148
150
|
end
|
149
151
|
|
@@ -175,5 +177,5 @@ LAUNCH_DESC
|
|
175
177
|
end
|
176
178
|
end
|
177
179
|
|
178
|
-
RTmux::Exec
|
180
|
+
RTmux::Exec.start(ARGV)
|
179
181
|
|
data/lib/rtmux.rb
CHANGED
@@ -6,10 +6,11 @@
|
|
6
6
|
# help create/resume tmux sessions
|
7
7
|
#
|
8
8
|
# created on : 2012.11.22
|
9
|
-
# last update: 2013.
|
9
|
+
# last update: 2013.10.16
|
10
10
|
#
|
11
11
|
# by meinside@gmail.com
|
12
12
|
|
13
|
+
# rtmux module
|
13
14
|
module RTmux
|
14
15
|
|
15
16
|
=begin
|
@@ -31,13 +32,20 @@ module RTmux
|
|
31
32
|
=end
|
32
33
|
class TmuxHelper
|
33
34
|
# initializer
|
34
|
-
# @param session_name [String] session name
|
35
|
+
# @param session_name [String] session name (default: hostname)
|
35
36
|
def initialize(session_name, &block)
|
37
|
+
# check if tmux is installed or not
|
38
|
+
if `which tmux`.empty?
|
39
|
+
puts "* tmux is not installed on this machine"
|
40
|
+
puts "> brew install tmux"
|
41
|
+
puts "or"
|
42
|
+
puts "> sudo apt-get install tmux"
|
43
|
+
exit 1
|
44
|
+
end
|
45
|
+
|
36
46
|
@session_name = session_name || `hostname`.strip
|
37
47
|
|
38
|
-
if block_given?
|
39
|
-
yield self
|
40
|
-
end
|
48
|
+
yield self if block_given?
|
41
49
|
end
|
42
50
|
|
43
51
|
# check if session is already created or not
|
@@ -59,7 +67,7 @@ module RTmux
|
|
59
67
|
# @param options [Hash] options
|
60
68
|
def create_window(name = nil, options = {cmd: nil})
|
61
69
|
if session_created?
|
62
|
-
|
70
|
+
if !window_created?(name)
|
63
71
|
`tmux new-window -t #{@session_name} #{name.nil? ? "" : "-n #{name}"}`
|
64
72
|
else
|
65
73
|
return # don't create duplicated windows
|
metadata
CHANGED
@@ -1,27 +1,27 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rtmux
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Sungjin Han
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-10-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: thor
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- -
|
17
|
+
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- -
|
24
|
+
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0'
|
27
27
|
description: help create/resume tmux sessions
|
@@ -43,12 +43,12 @@ require_paths:
|
|
43
43
|
- lib
|
44
44
|
required_ruby_version: !ruby/object:Gem::Requirement
|
45
45
|
requirements:
|
46
|
-
- -
|
46
|
+
- - ">="
|
47
47
|
- !ruby/object:Gem::Version
|
48
48
|
version: '0'
|
49
49
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
50
50
|
requirements:
|
51
|
-
- -
|
51
|
+
- - ">="
|
52
52
|
- !ruby/object:Gem::Version
|
53
53
|
version: '0'
|
54
54
|
requirements: []
|