xlogin 0.11.11 → 0.12.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.
- checksums.yaml +4 -4
- data/lib/xlogin/rake_task.rb +30 -32
- data/lib/xlogin/session.rb +5 -5
- data/lib/xlogin/telnet.rb +1 -2
- data/lib/xlogin/version.rb +1 -1
- data/xlogin.gemspec +1 -0
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6c449db3a3cf0359fc79c858d307ebfb6625fc35f6005fa4e4578463363fe786
|
4
|
+
data.tar.gz: 5514370c6d66e44e1066e0fa4e80108954750a6c7cc19062bef8eb9a462f049f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: '08a519dde6a07cdc637a4044bd52ec46b91289fe10c2e89ba5992a405c4e99f70ee57e206cda3020583f2f9a7a7f13ca7ab6602d37b709a5a2dae99795381e7a'
|
7
|
+
data.tar.gz: 41b9b7e3827256fc796b57dbc67c2b78d8d1c63af6982297cb75542c661d1d9786170280dc4c9dc3998490bd3ff7f882ea0004b4105045f1857d3fdad0e8432f
|
data/lib/xlogin/rake_task.rb
CHANGED
@@ -3,6 +3,7 @@ require 'rake'
|
|
3
3
|
require 'rake/tasklib'
|
4
4
|
require 'ostruct'
|
5
5
|
require 'stringio'
|
6
|
+
require 'colorize'
|
6
7
|
|
7
8
|
module Xlogin
|
8
9
|
class RakeTask < Rake::TaskLib
|
@@ -21,21 +22,6 @@ module Xlogin
|
|
21
22
|
end
|
22
23
|
|
23
24
|
end
|
24
|
-
|
25
|
-
def printf(fp, text)
|
26
|
-
time = Time.now.iso8601
|
27
|
-
lines = text.lines
|
28
|
-
lines.pop if lines[-1] == "\n"
|
29
|
-
|
30
|
-
lines = lines.map do |line|
|
31
|
-
str = time
|
32
|
-
str << " #{name}" if Rake.application.options.always_multitask
|
33
|
-
str << " |#{line.gsub(/^\s*[\r\n]+/, '')}"
|
34
|
-
end
|
35
|
-
|
36
|
-
fp.print "\n"
|
37
|
-
fp.print lines.join("\n")
|
38
|
-
end
|
39
25
|
end
|
40
26
|
|
41
27
|
attr_reader :name
|
@@ -45,7 +31,7 @@ module Xlogin
|
|
45
31
|
attr_accessor :silent
|
46
32
|
attr_accessor :fail_on_error
|
47
33
|
|
48
|
-
@@
|
34
|
+
@@stopped = false
|
49
35
|
|
50
36
|
def initialize(name)
|
51
37
|
@name = name
|
@@ -75,12 +61,12 @@ module Xlogin
|
|
75
61
|
if lock
|
76
62
|
task(name => lock)
|
77
63
|
file(lock) do
|
78
|
-
run_task unless @@
|
79
|
-
touch(lock, verbose: Rake.application.options.trace) unless @@
|
64
|
+
run_task unless @@stopped
|
65
|
+
touch(lock, verbose: Rake.application.options.trace) unless @@stopped
|
80
66
|
end
|
81
67
|
else
|
82
68
|
task(name) do
|
83
|
-
run_task unless @@
|
69
|
+
run_task unless @@stopped
|
84
70
|
end
|
85
71
|
end
|
86
72
|
end
|
@@ -88,23 +74,35 @@ module Xlogin
|
|
88
74
|
def run_task
|
89
75
|
buffer = StringIO.new
|
90
76
|
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
args[:log] << buffer if !silent && Rake.application.options.always_multitask
|
95
|
-
args[:log] << $stdout if !silent && !Rake.application.options.always_multitask
|
96
|
-
args[:timeout] = timeout if timeout
|
77
|
+
logger = log ? [log] : []
|
78
|
+
logger.push $stdout if !silent && !Rake.application.options.always_multitask
|
79
|
+
logger.push buffer if !silent && Rake.application.options.always_multitask
|
97
80
|
|
98
|
-
session = Xlogin.get(name,
|
99
|
-
|
100
|
-
|
81
|
+
session = Xlogin.get(name, log: logger, timeout: timeout)
|
82
|
+
def session.comment(text, prefix: "[INFO]", **color)
|
83
|
+
color = {color: :green}.merge(**color)
|
101
84
|
|
102
|
-
|
85
|
+
log("\n")
|
86
|
+
log(Time.now.iso8601.colorize(**color) + ' ') if !Rake.application.options.always_multitask
|
87
|
+
log("#{prefix} #{text}".colorize(**color))
|
88
|
+
cmd('')
|
89
|
+
end
|
90
|
+
|
91
|
+
@runner.call(session)
|
92
|
+
$stdout.print format_log(buffer.string)
|
103
93
|
rescue => e
|
104
|
-
|
105
|
-
|
94
|
+
session.comment("#{e}", prefix: "[ERROR]", color: :red)
|
95
|
+
$stderr.print format_log(buffer.string)
|
96
|
+
|
97
|
+
@@stopped = true if fail_on_error
|
98
|
+
ensure
|
99
|
+
session.close rescue nil
|
100
|
+
end
|
106
101
|
|
107
|
-
|
102
|
+
def format_log(text)
|
103
|
+
text.lines.map do |line|
|
104
|
+
"#{Time.now.iso8601} - #{name}\t|#{line.gsub(/^\s*[\r]+/, '')}"
|
105
|
+
end.join
|
108
106
|
end
|
109
107
|
|
110
108
|
end
|
data/lib/xlogin/session.rb
CHANGED
@@ -86,6 +86,10 @@ module Xlogin
|
|
86
86
|
end
|
87
87
|
end
|
88
88
|
|
89
|
+
def log(text)
|
90
|
+
@loggers.each { |_, logger| logger.syswrite(text) if logger }
|
91
|
+
end
|
92
|
+
|
89
93
|
def enable_log(log = $stdout)
|
90
94
|
@loggers.update(log => build_logger(log))
|
91
95
|
if block_given?
|
@@ -106,7 +110,7 @@ module Xlogin
|
|
106
110
|
def _waitfor(*args, &block)
|
107
111
|
__waitfor = method(:waitfor).super_method
|
108
112
|
line = __waitfor.call(*args) do |recv|
|
109
|
-
|
113
|
+
log(recv)
|
110
114
|
block.call(recv) if block
|
111
115
|
end
|
112
116
|
|
@@ -119,10 +123,6 @@ module Xlogin
|
|
119
123
|
return line
|
120
124
|
end
|
121
125
|
|
122
|
-
def output_log(text)
|
123
|
-
@loggers.each { |_, logger| logger.syswrite(text) if logger }
|
124
|
-
end
|
125
|
-
|
126
126
|
def ssh_tunnel(gateway)
|
127
127
|
gateway_uri = Addressable::URI.parse(gateway)
|
128
128
|
case gateway_uri.scheme
|
data/lib/xlogin/telnet.rb
CHANGED
data/lib/xlogin/version.rb
CHANGED
data/xlogin.gemspec
CHANGED
@@ -36,6 +36,7 @@ Gem::Specification.new do |spec|
|
|
36
36
|
spec.add_dependency "net-ssh-gateway"
|
37
37
|
spec.add_dependency "parallel"
|
38
38
|
spec.add_dependency "addressable"
|
39
|
+
spec.add_dependency "colorize"
|
39
40
|
|
40
41
|
spec.add_development_dependency "bundler"
|
41
42
|
spec.add_development_dependency "rake"
|
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.
|
4
|
+
version: 0.12.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- haccht
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-04-
|
11
|
+
date: 2019-04-23 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-telnet
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: colorize
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :runtime
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
97
111
|
- !ruby/object:Gem::Dependency
|
98
112
|
name: bundler
|
99
113
|
requirement: !ruby/object:Gem::Requirement
|