ztk 0.0.11 → 0.0.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (3) hide show
  1. data/lib/ztk/ssh.rb +30 -15
  2. data/lib/ztk/version.rb +1 -1
  3. metadata +4 -4
@@ -109,6 +109,27 @@ module ZTK
109
109
  }.merge(config))
110
110
  end
111
111
 
112
+ # Starts an SSH session. Can also be used to get the Net::SSH object.
113
+ #
114
+ # Primarily used internally.
115
+ def ssh
116
+ @ssh ||= Net::SSH.start(@config.host_name, @config.user, ssh_options)
117
+ end
118
+
119
+ # Starts an SFTP session. Can also be used to get the Net::SSH object.
120
+ #
121
+ # Primarily used internally.
122
+ def sftp
123
+ @sftp ||= Net::SFTP.start(@config.host_name, @config.user, ssh_options)
124
+ end
125
+
126
+ # Close our sessions gracefully.
127
+ def close
128
+ log(:debug) { "close" }
129
+ ssh and ssh.close
130
+ sftp and sftp.close
131
+ end
132
+
112
133
  # Launches an SSH console, replacing the current process with the console
113
134
  # process.
114
135
  #
@@ -152,13 +173,11 @@ module ZTK
152
173
  log(:info) { "exec(#{command.inspect}, #{options.inspect})" }
153
174
  log(:debug) { "config(#{@config.inspect})" }
154
175
 
155
- @ssh ||= Net::SSH.start(@config.host_name, @config.user, ssh_options)
156
-
157
176
  options = OpenStruct.new({ :silence => false }.merge(options))
158
177
  log(:debug) { "options(#{options.inspect})" }
159
178
 
160
179
  output = ""
161
- channel = @ssh.open_channel do |chan|
180
+ channel = ssh.open_channel do |chan|
162
181
  log(:debug) { "channel opened" }
163
182
  chan.exec(command) do |ch, success|
164
183
  raise SSHError, "Could not execute '#{command}'." unless success
@@ -199,15 +218,13 @@ module ZTK
199
218
  # remote = File.expand_path(File.join("/tmp", "id_rsa.pub"))
200
219
  # ssh.upload(local, remote)
201
220
  def upload(local, remote)
202
- log(:debug) { "upload(#{local.inspect}, #{remote.inspect})" }
221
+ log(:info) { "upload(#{local.inspect}, #{remote.inspect})" }
203
222
  log(:debug) { "config(#{@config.inspect})" }
204
223
 
205
- @sftp ||= Net::SFTP.start(@config.host_name, @config.user, ssh_options)
206
-
207
- @sftp.upload!(local.to_s, remote.to_s) do |event, uploader, *args|
224
+ sftp.upload!(local.to_s, remote.to_s) do |event, uploader, *args|
208
225
  case event
209
226
  when :open
210
- log(:info) { "upload(#{args[0].local} -> #{args[0].remote})" }
227
+ log(:debug) { "upload(#{args[0].local} -> #{args[0].remote})" }
211
228
  when :close
212
229
  log(:debug) { "close(#{args[0].remote})" }
213
230
  when :mkdir
@@ -215,7 +232,7 @@ module ZTK
215
232
  when :put
216
233
  log(:debug) { "put(#{args[0].remote}, size #{args[2].size} bytes, offset #{args[1]})" }
217
234
  when :finish
218
- log(:info) { "finish" }
235
+ log(:debug) { "finish" }
219
236
  end
220
237
  end
221
238
 
@@ -238,15 +255,13 @@ module ZTK
238
255
  # remote = File.expand_path(File.join(ENV["HOME"], ".ssh", "id_rsa.pub"))
239
256
  # ssh.download(remote, local)
240
257
  def download(remote, local)
241
- log(:debug) { "download(#{remote.inspect}, #{local.inspect})" }
258
+ log(:info) { "download(#{remote.inspect}, #{local.inspect})" }
242
259
  log(:debug) { "config(#{@config.inspect})" }
243
260
 
244
- @sftp ||= Net::SFTP.start(@config.host_name, @config.user, ssh_options)
245
-
246
- @sftp.download!(remote.to_s, local.to_s) do |event, downloader, *args|
261
+ sftp.download!(remote.to_s, local.to_s) do |event, downloader, *args|
247
262
  case event
248
263
  when :open
249
- log(:info) { "download(#{args[0].remote} -> #{args[0].local})" }
264
+ log(:debug) { "download(#{args[0].remote} -> #{args[0].local})" }
250
265
  when :close
251
266
  log(:debug) { "close(#{args[0].local})" }
252
267
  when :mkdir
@@ -254,7 +269,7 @@ module ZTK
254
269
  when :get
255
270
  log(:debug) { "get(#{args[0].remote}, size #{args[2].size} bytes, offset #{args[1]})" }
256
271
  when :finish
257
- log(:info) { "finish" }
272
+ log(:debug) { "finish" }
258
273
  end
259
274
  end
260
275
 
@@ -19,5 +19,5 @@
19
19
  ################################################################################
20
20
 
21
21
  module ZTK
22
- VERSION = "0.0.11" unless const_defined?(:VERSION)
22
+ VERSION = "0.0.12" unless const_defined?(:VERSION)
23
23
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ztk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
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: 2013-01-18 00:00:00.000000000 Z
12
+ date: 2013-01-20 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: erubis
@@ -208,7 +208,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
208
208
  version: '0'
209
209
  segments:
210
210
  - 0
211
- hash: 3510449771731421328
211
+ hash: 3569323308884458346
212
212
  required_rubygems_version: !ruby/object:Gem::Requirement
213
213
  none: false
214
214
  requirements:
@@ -217,7 +217,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
217
217
  version: '0'
218
218
  segments:
219
219
  - 0
220
- hash: 3510449771731421328
220
+ hash: 3569323308884458346
221
221
  requirements: []
222
222
  rubyforge_project:
223
223
  rubygems_version: 1.8.24