ztk 0.0.11 → 0.0.12

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.
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