i2cssh 1.5.1 → 1.5.2
Sign up to get free protection for your applications and to get access to all the features.
- data/VERSION +1 -1
- data/bin/i2cssh +34 -30
- data/i2cssh.gemspec +2 -2
- metadata +4 -4
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
1.5.
|
1
|
+
1.5.2
|
data/bin/i2cssh
CHANGED
@@ -17,20 +17,14 @@ def get_hosts(c)
|
|
17
17
|
cluster = @clusters[c]
|
18
18
|
|
19
19
|
if cluster
|
20
|
-
|
20
|
+
set_options(cluster, login_from_cli)
|
21
21
|
|
22
|
-
|
23
|
-
@i2_options[:login_override] = login_from_cli if login_from_cli
|
24
|
-
@i2_options[:broadcast] = !cluster["broadcast"].nil? ? cluster["broadcast"] : @i2_options[:broadcast]
|
25
|
-
@i2_options[:profile] = !cluster["profile"].nil? ? cluster["profile"] : @i2_options[:profile]
|
26
|
-
@i2_options[:rank] = !cluster["rank"].nil? ? cluster["rank"] : @i2_options[:rank]
|
22
|
+
cluster_hosts = cluster["hosts"]
|
27
23
|
|
28
24
|
if @i2_options[:login_override] then
|
29
25
|
cluster_hosts = cluster_hosts.map{|h| "#{@i2_options[:login_override]}@#{h}"}
|
30
26
|
end
|
31
27
|
|
32
|
-
@ssh_environment.merge!(cluster["environment"].inject({}){|m, v| m.merge(v)}) if cluster["environment"]
|
33
|
-
|
34
28
|
@servers += cluster_hosts
|
35
29
|
else
|
36
30
|
puts "ERROR: unknown cluster #{c}. Check your #{@config_file}"
|
@@ -38,29 +32,37 @@ def get_hosts(c)
|
|
38
32
|
end
|
39
33
|
end
|
40
34
|
|
35
|
+
def set_options(config_hash, login_override=nil)
|
36
|
+
if login_override then
|
37
|
+
@i2_options[:login_override] = login_override
|
38
|
+
else
|
39
|
+
@i2_options[:login_override] = config_hash["login"].nil? ? @i2_options[:login_override] : config_hash["login"]
|
40
|
+
end
|
41
|
+
|
42
|
+
@i2_options[:broadcast] = config_hash["broadcast"].nil? ? @i2_options[:broadcast] : config_hash["broadcast"]
|
43
|
+
@i2_options[:profile] = config_hash["profile"].nil? ? @i2_options[:profile] : config_hash["profile"]
|
44
|
+
@i2_options[:rank] = config_hash["rank"].nil? ? @i2_options[:rank] : config_hash["rank"]
|
45
|
+
@i2_options[:iterm2] = config_hash["iterm2"].nil? ? @i2_options[:iterm2] : config_hash["iterm2"]
|
46
|
+
|
47
|
+
@ssh_environment.merge!(config_hash["environment"].inject({}){|m, v| m.merge(v)}) if config_hash["environment"]
|
48
|
+
end
|
49
|
+
|
41
50
|
if File.exists?(@config_file)
|
42
51
|
config_hash = YAML.load File.read @config_file
|
43
52
|
|
44
53
|
# Read config and set defaults from config
|
45
54
|
if config_hash["version"] && config_hash["version"].to_i >= 2 then
|
55
|
+
set_options(config_hash)
|
46
56
|
@clusters = config_hash["clusters"]
|
47
|
-
|
48
|
-
# Options from the config file
|
49
|
-
@i2_options[:iterm2] = config_hash["iterm2"]
|
50
|
-
@i2_options[:login_override] = config_hash["login"]
|
51
|
-
@i2_options[:broadcast] = config_hash["broadcast"]
|
52
|
-
@i2_options[:profile] = config_hash["profile"]
|
53
|
-
@i2_options[:rank] = config_hash["rank"]
|
54
|
-
|
55
|
-
@ssh_environment.merge!(config_hash["environment"].inject({}){|m, v| m.merge(v)}) if config_hash["environment"]
|
56
|
-
|
57
57
|
else
|
58
58
|
# Convert version 1 format to version 2
|
59
|
-
clusters = config_hash["clusters"].inject({}){|m, c| m[c[0]] = {"hosts" => c[1]}; m}
|
59
|
+
@clusters = config_hash["clusters"].inject({}){|m, c| m[c[0]] = {"hosts" => c[1]}; m}
|
60
60
|
end
|
61
61
|
|
62
62
|
end
|
63
63
|
|
64
|
+
opts_from_cmdline = {}
|
65
|
+
|
64
66
|
optparse = OptionParser.new do |opts|
|
65
67
|
opts.banner = "Usage: #{File.basename(__FILE__)} [options] [(username@host [username@host] | username@cluster)]"
|
66
68
|
|
@@ -90,7 +92,7 @@ optparse = OptionParser.new do |opts|
|
|
90
92
|
end
|
91
93
|
opts.on '-l', '--login LOGIN',
|
92
94
|
'SSH login name' do |u|
|
93
|
-
|
95
|
+
opts_from_cmdline[:login_override] = u
|
94
96
|
|
95
97
|
end
|
96
98
|
opts.on '-e', '--environment KEY=VAL',
|
@@ -99,49 +101,49 @@ optparse = OptionParser.new do |opts|
|
|
99
101
|
end
|
100
102
|
opts.on '-r', '--rank',
|
101
103
|
'Send LC_RANK with the host number as environment variable' do
|
102
|
-
|
104
|
+
opts_from_cmdline[:rank] = true
|
103
105
|
end
|
104
106
|
|
105
107
|
# iTerm2 options
|
106
108
|
opts.on '-F', '--fullscreen',
|
107
109
|
'Make the window fullscreen' do
|
108
|
-
|
110
|
+
opts_from_cmdline[:fullscreen] = true
|
109
111
|
end
|
110
112
|
opts.on '-C', '--columns COLUMNS', Integer,
|
111
113
|
'Number of columns (rows will be calculated)' do |c|
|
112
|
-
if
|
114
|
+
if opts_from_cmdline[:rows]
|
113
115
|
puts "ERROR: -C and -R can't be used at the same time"
|
114
116
|
puts optparse.help
|
115
117
|
exit 1
|
116
118
|
else
|
117
|
-
|
119
|
+
opts_from_cmdline[:columns] = c
|
118
120
|
end
|
119
121
|
end
|
120
122
|
opts.on '-R', '--rows ROWS', Integer,
|
121
123
|
'Number of rows (columns will be calculated)' do |r|
|
122
|
-
if
|
124
|
+
if opts_from_cmdline[:columns]
|
123
125
|
puts "ERROR: -C and -R can't be used at the same time"
|
124
126
|
puts optparse.help
|
125
127
|
exit 1
|
126
128
|
else
|
127
|
-
|
129
|
+
opts_from_cmdline[:rows] = r
|
128
130
|
end
|
129
131
|
end
|
130
132
|
opts.on '-b', '--broadcast',
|
131
133
|
'Start with broadcast input (DANGEROUS!)' do
|
132
|
-
|
134
|
+
opts_from_cmdline[:broadcast] = true
|
133
135
|
end
|
134
136
|
opts.on '-nb', '--nobroadcast',
|
135
137
|
'Disable broadcast' do
|
136
|
-
|
138
|
+
opts_from_cmdline[:broadcast] = false
|
137
139
|
end
|
138
140
|
opts.on '-p', '--profile PROFILE',
|
139
141
|
'Name of the iTerm2 profile (default: Default)' do |p|
|
140
|
-
|
142
|
+
opts_from_cmdline[:profile] = p
|
141
143
|
end
|
142
144
|
opts.on "-2", '--iterm2',
|
143
145
|
'Use iTerm2 instead of iTerm' do
|
144
|
-
|
146
|
+
opts_from_cmdline[:iterm2] = true
|
145
147
|
end
|
146
148
|
|
147
149
|
end
|
@@ -154,6 +156,8 @@ elsif ARGV.length > 1 then
|
|
154
156
|
@servers = ARGV
|
155
157
|
end
|
156
158
|
|
159
|
+
@i2_options.merge!(opts_from_cmdline)
|
160
|
+
|
157
161
|
if @i2_options[:login_override] then
|
158
162
|
@servers = @servers.map{|h| "#{@i2_options[:login_override]}@#{h.gsub(/.+@/,'')}"}
|
159
163
|
end
|
data/i2cssh.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = "i2cssh"
|
8
|
-
s.version = "1.5.
|
8
|
+
s.version = "1.5.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Wouter de Bie"]
|
12
|
-
s.date = "2012-03-
|
12
|
+
s.date = "2012-03-25"
|
13
13
|
s.description = "csshX like cluster ssh using iTerm2 panes"
|
14
14
|
s.email = "wouter@evenflow.se"
|
15
15
|
s.executables = ["i2cssh"]
|
metadata
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: i2cssh
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash:
|
4
|
+
hash: 7
|
5
5
|
prerelease:
|
6
6
|
segments:
|
7
7
|
- 1
|
8
8
|
- 5
|
9
|
-
-
|
10
|
-
version: 1.5.
|
9
|
+
- 2
|
10
|
+
version: 1.5.2
|
11
11
|
platform: ruby
|
12
12
|
authors:
|
13
13
|
- Wouter de Bie
|
@@ -15,7 +15,7 @@ autorequire:
|
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2012-03-
|
18
|
+
date: 2012-03-25 00:00:00 Z
|
19
19
|
dependencies:
|
20
20
|
- !ruby/object:Gem::Dependency
|
21
21
|
prerelease: false
|