xlogin 0.15.9 → 0.16.0

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 1ed377f5d1478cfca33b257304579edbbdbe8cb513d5613ab488698a872d3fe7
4
- data.tar.gz: 5c4d51a3f685d0cc9c5f6f27e61344dc9ec295b15a28374121ed77c94a95b69e
3
+ metadata.gz: aae85b41321af336f469aa967987f88912d22087748c6b646adb699688c0b17f
4
+ data.tar.gz: 26dcf9ed1c173bc43d247ab1a1339c8df0586c9734ea0679f5dd5e7fd70bd83a
5
5
  SHA512:
6
- metadata.gz: 0f0cdce3afb728a5686b4d6a287cc98723ca0f2eedb4c0101c1fc64eb5301d933a2dbb97b0de6e7d0f4dab8aaca4f36bcaaa3053acebe80b438d09ed4ed2168a
7
- data.tar.gz: cd0e7896daff69587f61ebe08afcd6aae6e4a952359bf70bf4c87446bd840b450a9e2b93763e6ed16c86d5c84c5348122bcd88c959e3674748ea32a58dc0f45a
6
+ metadata.gz: f7eeeecc2b10c5bb0a6bbca0ba80a7b71611cb04733d59271370641930c391aa604bdd06ca96cfbbfad05b32a745d62869688a3e703330a1742f7bab5df5c59c
7
+ data.tar.gz: a27419c164f9387f8633fa7610c7507d5febd8f9ae1d1d3eb77bf2ab6b04a96133c83e40265192927432b92994c02c3c8386b1088882fc5679041aea9d6f9134
data/lib/xlogin.rb CHANGED
@@ -21,14 +21,14 @@ module Xlogin
21
21
  end
22
22
 
23
23
  class << self
24
- def list(*patterns)
25
- factory.list_hostinfo(*patterns)
26
- end
27
-
28
24
  def find(*patterns)
29
25
  list(*patterns).first
30
26
  end
31
27
 
28
+ def list(*patterns)
29
+ factory.list_hostinfo(*patterns)
30
+ end
31
+
32
32
  def get(args, **opts, &block)
33
33
  session = case args
34
34
  when Hash then factory.build(**args.merge(**opts))
@@ -26,7 +26,7 @@ module Xlogin
26
26
  end
27
27
 
28
28
  def list_hostinfo(*patterns)
29
- patterns = patterns.flat_map{ |e| e.split(/\s+/) }.compact
29
+ patterns = patterns.compact.flat_map{ |e| e.split(/\s+/) }
30
30
  return @inventory.values if patterns.empty?
31
31
 
32
32
  values1 = patterns.map do |pattern|
@@ -78,41 +78,36 @@ module Xlogin
78
78
 
79
79
  def run_task
80
80
  buffer = StringIO.new
81
- loggers = []
82
- loggers << log if log
83
- loggers << $stdout if !silent && !Rake.application.options.always_multitask
84
- loggers << buffer
81
+ loggers = [buffer]
82
+ loggers << log if log
83
+ loggers << STDOUT if !silent && !Rake.application.options.always_multitask
85
84
 
86
85
  session = Xlogin.get(name, log: loggers, timeout: timeout)
86
+ instance_exec(session, &@runner)
87
87
 
88
- @runner.call(session)
89
- $stdout.print log_text(buffer.string) if !silent && Rake.application.options.always_multitask
90
-
88
+ print(buffer.string) if !silent && Rake.application.options.always_multitask
91
89
  return true
92
90
  rescue => e
93
91
  RakeTask.shutdown! if fail_on_error
94
92
 
95
- session.comment(e.to_s, lf: false, color: :red) if session
96
- if Rake.application.options.always_multitask && !buffer.string.empty?
97
- $stderr.print log_text(buffer.string + "\n").colorize(color: :red)
98
- end
99
-
93
+ session.log_message(e.to_s.colorize(color: :red)) if session
94
+ print(buffer.string + "\n", color: :red) if Rake.application.options.always_multitask
100
95
  return false
101
96
  ensure
102
97
  session.close rescue nil
103
98
  end
104
99
 
105
- def log_text(text)
106
- text.lines.map{ |line| "#{Time.now.iso8601} #{name}\t|#{line.gsub(/^.*\r/, '')}" }.join
100
+ def puts(text, **opt)
101
+ print(text + "\n", **opt)
107
102
  end
108
103
 
109
- end
110
-
111
- module SessionModule
104
+ def print(text, **opt)
105
+ return if text.empty?
112
106
 
113
- def comment(line, lf: true, **color)
114
- write_log(line.chomp.colorize({color: :light_white}.merge(**color)))
115
- cmd('') if lf
107
+ text = text.gsub("\r", '')
108
+ text = text.lines.map{ |line| "#{name}\t|#{line}" }.join if Rake.application.options.always_multitask
109
+ text = text.colorize(**opt)
110
+ $stdout.print(text)
116
111
  end
117
112
 
118
113
  end
@@ -45,7 +45,7 @@ module Xlogin
45
45
  rescue => e
46
46
  unless (num_try += 1) > (@config.retry || 0)
47
47
  sleep 2.0 ** (num_try)
48
- retry
48
+ retry
49
49
  end
50
50
  raise e
51
51
  end
@@ -84,7 +84,7 @@ module Xlogin
84
84
  return waitfor(prompt_pattern) if args.empty?
85
85
 
86
86
  line = super(*args) do |recv|
87
- write_log(recv)
87
+ log_message(recv)
88
88
  block.call(recv) if block
89
89
  end
90
90
 
@@ -123,11 +123,11 @@ module Xlogin
123
123
  end
124
124
  end
125
125
 
126
- private
127
- def write_log(text)
126
+ def log_message(text)
128
127
  @loggers.each{ |_, logger| logger.syswrite(text) if logger }
129
128
  end
130
129
 
130
+ private
131
131
  def build_log(log)
132
132
  case log
133
133
  when String
data/lib/xlogin/telnet.rb CHANGED
@@ -38,7 +38,7 @@ module Xlogin
38
38
  @sock.syswrite(bs)
39
39
  when @sock
40
40
  begin
41
- write_log(fh.readpartial(1024))
41
+ log_message(fh.readpartial(1024))
42
42
  rescue Errno::EAGAIN
43
43
  retry
44
44
  end
@@ -1,3 +1,3 @@
1
1
  module Xlogin
2
- VERSION = "0.15.9"
2
+ VERSION = "0.16.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: xlogin
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.15.9
4
+ version: 0.16.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - haccht
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-28 00:00:00.000000000 Z
11
+ date: 2021-04-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: net-telnet