sshx 0.1.0 → 0.1.1
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.
- data/lib/sshx/cli.rb +25 -24
- data/lib/sshx/version.rb +1 -1
- metadata +2 -2
data/lib/sshx/cli.rb
CHANGED
@@ -9,7 +9,8 @@ module Sshx
|
|
9
9
|
@@namespace_separator = '.'
|
10
10
|
@@enable_alias = true
|
11
11
|
@@ssh_path = `which ssh`
|
12
|
-
@@
|
12
|
+
@@ssh_config_path = @@home_directory + '/.ssh/config'
|
13
|
+
@@sshx_config_path = @@home_directory + '/.sshx/config'
|
13
14
|
def start(args = ARGV)
|
14
15
|
|
15
16
|
if !init()
|
@@ -17,6 +18,7 @@ module Sshx
|
|
17
18
|
end
|
18
19
|
|
19
20
|
load_config()
|
21
|
+
make_ssh_config()
|
20
22
|
|
21
23
|
if args.length == 0
|
22
24
|
puts 'sshx is just a wrapper of ssh.'
|
@@ -24,11 +26,8 @@ module Sshx
|
|
24
26
|
return
|
25
27
|
end
|
26
28
|
|
27
|
-
make_temporary_config()
|
28
|
-
|
29
29
|
if args.length == 2 && args[0] == 'init' && args[1] == '-'
|
30
30
|
puts make_commands().join("\n")
|
31
|
-
remove_temporary_config()
|
32
31
|
return
|
33
32
|
end
|
34
33
|
|
@@ -37,11 +36,9 @@ module Sshx
|
|
37
36
|
shell_args.push(arg.shellescape)
|
38
37
|
}
|
39
38
|
|
40
|
-
system(@@ssh_path + ' ' + shell_args.join(' ')
|
39
|
+
system(@@ssh_path + ' ' + shell_args.join(' '))
|
41
40
|
status = $?.exitstatus
|
42
41
|
|
43
|
-
remove_temporary_config()
|
44
|
-
|
45
42
|
exit status
|
46
43
|
|
47
44
|
end
|
@@ -67,7 +64,7 @@ module Sshx
|
|
67
64
|
puts 'Import ssh config file...'
|
68
65
|
|
69
66
|
Dir.mkdir(@@home_directory + '/.sshx')
|
70
|
-
FileUtils.
|
67
|
+
FileUtils.cp(@@home_directory + '/.ssh/config', @@home_directory + '/.sshx/ssh_config')
|
71
68
|
|
72
69
|
puts 'Make config file...'
|
73
70
|
|
@@ -75,7 +72,6 @@ module Sshx
|
|
75
72
|
file.puts('NamespaceSeparator ' + @@namespace_separator)
|
76
73
|
file.puts('EnableAlias ' + (@@enable_alias?'true':'false'))
|
77
74
|
file.puts('SshPath ' + @@ssh_path)
|
78
|
-
file.puts('TemporaryConfigPath ' + @@temporary_config_path)
|
79
75
|
}
|
80
76
|
|
81
77
|
puts 'Edit .bashrc file...'
|
@@ -114,6 +110,8 @@ module Sshx
|
|
114
110
|
file = open(@@home_directory + '/.sshx/config')
|
115
111
|
while line = file.gets
|
116
112
|
|
113
|
+
line = line.chomp
|
114
|
+
|
117
115
|
matches = line.scan(/NamespaceSeparator\s+([^\s]*)/i)
|
118
116
|
if matches.length > 0
|
119
117
|
@@namespace_separator = matches[0][0]
|
@@ -132,22 +130,24 @@ module Sshx
|
|
132
130
|
next
|
133
131
|
end
|
134
132
|
|
135
|
-
matches = line.scan(/TemporaryConfigPath\s+([^\s]*)/i)
|
136
|
-
if matches.length > 0
|
137
|
-
@@temporary_config_path = matches[0][0]
|
138
|
-
next
|
139
|
-
end
|
140
|
-
|
141
133
|
end
|
142
134
|
file.close
|
143
135
|
|
144
136
|
end
|
145
137
|
|
146
|
-
def
|
138
|
+
def make_ssh_config()
|
147
139
|
|
148
140
|
@@home_directory = File.expand_path('~')
|
149
141
|
|
150
142
|
configs = []
|
143
|
+
|
144
|
+
configs.push('#############################################################')
|
145
|
+
configs.push('# CAUTION!')
|
146
|
+
configs.push('# This config is auto generated by sshx')
|
147
|
+
configs.push('# You cannot edit this file. Edit ~/.sshx/ssh_config insted.')
|
148
|
+
configs.push('#############################################################')
|
149
|
+
configs.push('')
|
150
|
+
|
151
151
|
Dir::foreach(@@home_directory + '/.sshx/') {|file_path|
|
152
152
|
|
153
153
|
if /^\./ =~ file_path
|
@@ -164,6 +164,8 @@ module Sshx
|
|
164
164
|
|
165
165
|
while line = file.gets
|
166
166
|
|
167
|
+
line = line.chomp
|
168
|
+
|
167
169
|
matches = line.scan(/Namespace\s+([^\s]+)/i)
|
168
170
|
if matches.length > 0
|
169
171
|
namespace = matches[0][0]
|
@@ -182,29 +184,28 @@ module Sshx
|
|
182
184
|
|
183
185
|
}
|
184
186
|
|
185
|
-
file = open(@@
|
187
|
+
file = open(@@ssh_config_path, 'w')
|
186
188
|
file.write(configs.join("\n"))
|
187
189
|
file.close
|
188
190
|
|
189
191
|
end
|
190
192
|
|
191
|
-
def remove_temporary_config()
|
192
|
-
|
193
|
-
File.unlink(@@temporary_config_path)
|
194
|
-
|
195
|
-
end
|
196
|
-
|
197
193
|
def get_hosts()
|
198
194
|
|
199
195
|
hosts = []
|
200
196
|
|
201
|
-
open(@@
|
197
|
+
open(@@ssh_config_path) {|file|
|
202
198
|
while line = file.gets
|
199
|
+
|
200
|
+
line = line.chomp
|
201
|
+
|
203
202
|
matches = line.scan(/Host\s+([^\s]+)/i)
|
204
203
|
if matches.length == 0
|
205
204
|
next
|
206
205
|
end
|
206
|
+
|
207
207
|
hosts.push(matches[0][0])
|
208
|
+
|
208
209
|
end
|
209
210
|
}
|
210
211
|
|
data/lib/sshx/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: sshx
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.1
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2014-03-
|
12
|
+
date: 2014-03-09 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Extended ssh command to use multi ssh_config, namespace and command completion.
|
15
15
|
email: kataoka@sirok.co.jp
|