xlogin 0.8.7 → 0.8.8
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 +5 -5
- data/lib/xlogin/cli.rb +1 -1
- data/lib/xlogin/delegator.rb +1 -1
- data/lib/xlogin/factory.rb +11 -10
- data/lib/xlogin/rake_task.rb +1 -1
- data/lib/xlogin/version.rb +1 -1
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA1:
|
3
|
+
metadata.gz: 7d419ec1f812e99a1b4f7237fd8d563dbb330f9c
|
4
|
+
data.tar.gz: 0627ae7ad9bb67ce1d6325036051e4f282b44c9a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: eb9f0a8b82c7e6da969deb8a497d07e563a3d32e3bd019782cbb0ce1490f052189816b288b8791e5e719f49471456400c5bbfdeee36b762a3af7d47a39c876a4
|
7
|
+
data.tar.gz: 03c2fcd89ccbaac330678bf01ab4a16d619736b9f12c75ba3ebbdad3ec5395e6c5681bfd7726aeb5728fae40ed973bfbd553d2194a2fe3f0c75d8aae2bb43a6e
|
data/lib/xlogin/cli.rb
CHANGED
@@ -64,7 +64,7 @@ module Xlogin
|
|
64
64
|
load_templates(*config.templates.map { |file| File.expand_path(file, ENV['PWD']) })
|
65
65
|
end
|
66
66
|
|
67
|
-
config.hostlist = Xlogin.factory.
|
67
|
+
config.hostlist = Xlogin.factory.list_info(*host.to_s.split(/\s+/))
|
68
68
|
raise "No host found: `#{host}`" if config.hostlist.empty?
|
69
69
|
rescue => e
|
70
70
|
$stderr.puts e, '', parser
|
data/lib/xlogin/delegator.rb
CHANGED
@@ -8,7 +8,7 @@ module Xlogin
|
|
8
8
|
target_host = params.delete(:relay)
|
9
9
|
return super(uri, **params) unless target_host
|
10
10
|
|
11
|
-
target_info = Xlogin.factory.
|
11
|
+
target_info = Xlogin.factory.get_info(target_host)
|
12
12
|
target_temp = Xlogin.factory.get_template(target_info[:type])
|
13
13
|
target_uri = URI(target_info[:uri])
|
14
14
|
|
data/lib/xlogin/factory.rb
CHANGED
@@ -7,7 +7,7 @@ module Xlogin
|
|
7
7
|
include Singleton
|
8
8
|
|
9
9
|
def initialize
|
10
|
-
@
|
10
|
+
@inventory = Hash.new
|
11
11
|
@templates = Hash.new
|
12
12
|
end
|
13
13
|
|
@@ -18,22 +18,23 @@ module Xlogin
|
|
18
18
|
end
|
19
19
|
end
|
20
20
|
|
21
|
-
def
|
21
|
+
def set_info(**opts)
|
22
22
|
name = opts[:name]
|
23
|
-
|
23
|
+
return unless name
|
24
|
+
@inventory[name] = (get_info(name) || {}).merge(opts)
|
24
25
|
end
|
25
26
|
|
26
|
-
def
|
27
|
-
@
|
27
|
+
def get_info(name)
|
28
|
+
@inventory[name]
|
28
29
|
end
|
29
30
|
|
30
|
-
def
|
31
|
-
return @
|
31
|
+
def list_info(*patterns)
|
32
|
+
return @inventory.values if patterns.empty?
|
32
33
|
|
33
34
|
values = patterns.map do |pattern|
|
34
35
|
key, val = pattern.to_s.split(':')
|
35
36
|
key, val = 'name', key if val.nil?
|
36
|
-
val.split(',').map { |e| @
|
37
|
+
val.split(',').map { |e| @inventory.values.select { |info| File.fnmatch(e, info[key.to_sym]) } }.reduce(&:|)
|
37
38
|
end
|
38
39
|
values.reduce(&:&).uniq
|
39
40
|
end
|
@@ -66,7 +67,7 @@ module Xlogin
|
|
66
67
|
end
|
67
68
|
|
68
69
|
def build_from_hostname(hostname, **opts)
|
69
|
-
hostinfo =
|
70
|
+
hostinfo = get_info(hostname)
|
70
71
|
raise Xlogin::SessionError.new("Host not found: '#{hostname}'") unless hostinfo
|
71
72
|
|
72
73
|
build(hostinfo.merge(name: hostname, **opts))
|
@@ -81,7 +82,7 @@ module Xlogin
|
|
81
82
|
opts = args.shift || {}
|
82
83
|
|
83
84
|
super if [type, name, uri].any? { |e| e.nil? }
|
84
|
-
|
85
|
+
set_info(type: type, name: name, uri: uri, **opts)
|
85
86
|
end
|
86
87
|
|
87
88
|
end
|
data/lib/xlogin/rake_task.rb
CHANGED
@@ -11,7 +11,7 @@ module Xlogin
|
|
11
11
|
include Rake::DSL
|
12
12
|
|
13
13
|
def generate(*target, **opts, &block)
|
14
|
-
hostnames = target.flat_map { |e| Xlogin.factory.
|
14
|
+
hostnames = target.flat_map { |e| Xlogin.factory.list_info(e) }.map { |e| e[:name] }
|
15
15
|
|
16
16
|
description = Rake.application.last_description
|
17
17
|
task 'all' => hostnames unless opts[:bundle] == false
|
data/lib/xlogin/version.rb
CHANGED
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.8.
|
4
|
+
version: 0.8.8
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- haccht
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2018-07-
|
11
|
+
date: 2018-07-09 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: net-telnet
|
@@ -121,7 +121,6 @@ files:
|
|
121
121
|
- ".gitignore"
|
122
122
|
- CODE_OF_CONDUCT.md
|
123
123
|
- Gemfile
|
124
|
-
- Gemfile.lock
|
125
124
|
- LICENSE.txt
|
126
125
|
- README.md
|
127
126
|
- Rakefile
|
@@ -166,7 +165,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
166
165
|
version: '0'
|
167
166
|
requirements: []
|
168
167
|
rubyforge_project:
|
169
|
-
rubygems_version: 2.
|
168
|
+
rubygems_version: 2.4.5.2
|
170
169
|
signing_key:
|
171
170
|
specification_version: 4
|
172
171
|
summary: rancid clogin alternative
|