conn 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/conn/dsl.rb +22 -6
  3. data/lib/conn/version.rb +1 -1
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 90e93eaa79ddc505e353b15ac75843249db7f134
4
- data.tar.gz: f195af2a62f54c6c76ced7d1fee3e7cfca302e2e
3
+ metadata.gz: 1e697aab8b46137d969752cbb5b8b7757aa6b7ff
4
+ data.tar.gz: c8e6841c7f1495110de6f40c23dfa6828e862134
5
5
  SHA512:
6
- metadata.gz: 2635278be5bc18f70249cae4d4b3ec01883445fd78373c0eb573c25a5291b7ff27741fcb48cbd498c25398552fa73064174b710cca87489c16492dfbef010a8a
7
- data.tar.gz: 22f8670512f88061f17c63d3fedde1ca0375ebf7342decce5608449490064343db821af1a51f1a7806d56ecb6a3e82580bc531cc701bf581f6a59075a769138e
6
+ metadata.gz: 219bf093cadabd36f006a09a8631797302378d2f74dae9e7e1278e6ed3de739379e17a62552f1b556abec8c95e6003ce3834adbc9b491f4598adc56ebea46f69
7
+ data.tar.gz: f71f33a9da416deb6cf671487f3ebc91c8ac90cd5e685532db35725885dc6813a996a2c54066f27111c8ec4c5f00bf050baf93aa236a2862fda31fb62bc16f66
@@ -8,14 +8,12 @@ require 'conn/pty_ssh'
8
8
  module Conn
9
9
  module DSL
10
10
  def ssh(hostname, &blk)
11
- config = Net::SSH::Config.for(hostname)
12
- user = config[:user] || Etc.getlogin
13
11
  queue = Queue.new
14
12
  cmd_loop = Thread.new do
15
13
  blk.call(queue)
16
14
  queue.respond_to?(:close) ? queue.close : (queue << false)
17
15
  end
18
- Net::SSH.start(hostname, user, config) do |ssh|
16
+ Net::SSH.start(*to_ssh_config(hostname)) do |ssh|
19
17
  ssh.loop do
20
18
  msg = queue.pop
21
19
  if msg
@@ -36,6 +34,25 @@ module Conn
36
34
  cmd_loop.join if cmd_loop.alive?
37
35
  end
38
36
 
37
+ def ssh_try!(hostname)
38
+ Net::SSH.start(*to_ssh_config(hostname, timeout: 3)) do |ssh|
39
+ ssh.exec! 'uptime'
40
+ end
41
+ end
42
+
43
+ def ssh_try(hostname)
44
+ ssh_try!(hostname)
45
+ rescue => e
46
+ false
47
+ end
48
+
49
+ private
50
+ def to_ssh_config(hostname, **opts)
51
+ config = Net::SSH::Config.for(hostname).merge(opts)
52
+ user = config[:user] || Etc.getlogin
53
+ [hostname, user, config]
54
+ end
55
+
39
56
  def input(str)
40
57
  puts "%s %s" % ["SSH<<".green.bold, str.yellow]
41
58
  end
@@ -48,16 +65,15 @@ module Conn
48
65
  puts "%s %s" % ["SSH!>".red.bold, str.red]
49
66
  end
50
67
 
68
+ public
51
69
  using Conn::PtySSH
52
70
  def ssh_pty(hostname, &blk)
53
- config = Net::SSH::Config.for(hostname)
54
- user = config[:user] || Etc.getlogin
55
71
  queue = Queue.new
56
72
  cmd_loop = Thread.new do
57
73
  blk.call(queue)
58
74
  queue.respond_to?(:close) ? queue.close : (queue << false)
59
75
  end
60
- Net::SSH.start(hostname, user, config) do |ssh|
76
+ Net::SSH.start(*to_ssh_config(hostname)) do |ssh|
61
77
  ssh.loop do
62
78
  msg = queue.pop
63
79
  if msg
@@ -1,3 +1,3 @@
1
1
  module Conn
2
- VERSION = "0.0.1"
2
+ VERSION = "0.0.2"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: conn
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 0.0.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Uchio KONDO
@@ -107,7 +107,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
107
107
  version: '0'
108
108
  requirements: []
109
109
  rubyforge_project:
110
- rubygems_version: 2.2.2
110
+ rubygems_version: 2.2.3
111
111
  signing_key:
112
112
  specification_version: 4
113
113
  summary: Super simple server connector