linux_stat 1.2.1 → 1.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/linux_stat/pci.rb +59 -56
- data/lib/linux_stat/usb.rb +50 -47
- data/lib/linux_stat/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d883007405e198d66cdf5f9cd03dc630b6e02d3d0c3a54ff33322a9562fcaa4e
|
4
|
+
data.tar.gz: c353965cff2a9c0de891cd8ba6d4f0272520b3b40cf48525f802867142855fb7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: affabda2ed39158a40d12710810d5f604bab1c621e55accdc363d3392fd2e651ee860b0abb0dff1d0317e6bd85e045b68a963ea939b04f765fc276517ac039cb
|
7
|
+
data.tar.gz: 286647ecf50f14f62d37efbd9d2c81cbbf2a79b7b0365fc6c1f96bb3064f0cf3bd2d89fae45e6fcb63442cf563063f6340e295720525bb4f02860b4022856715
|
data/lib/linux_stat/pci.rb
CHANGED
@@ -130,70 +130,73 @@ module LinuxStat
|
|
130
130
|
return devices_info(hwdata: hwdata) unless @@sys_pci_readable
|
131
131
|
|
132
132
|
Dir['/sys/bus/pci/devices/*/'.freeze].sort!.map! { |x|
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
133
|
+
begin
|
134
|
+
_vendor_file = File.join(x, 'vendor'.freeze)
|
135
|
+
next unless File.readable?(_vendor_file)
|
136
|
+
vendor = IO.read(_vendor_file).to_i(16).to_s(16)
|
137
|
+
prepend_0(vendor)
|
138
|
+
|
139
|
+
_device_file = File.join(x, 'device'.freeze)
|
140
|
+
next unless File.readable?(_device_file)
|
141
|
+
device = IO.read(_device_file).to_i(16).to_s(16)
|
142
|
+
prepend_0(device)
|
143
|
+
|
144
|
+
_sub_vendor_file = File.join(x, 'subsystem_vendor'.freeze)
|
145
|
+
sub_vendor = File.readable?(_sub_vendor_file) ? IO.read(_sub_vendor_file).to_i(16).to_s(16) : nil
|
146
|
+
prepend_0(sub_vendor) if sub_vendor
|
147
|
+
|
148
|
+
_sub_device_file = File.join(x, 'subsystem_device'.freeze)
|
149
|
+
sub_device = File.readable?(_sub_device_file) ? IO.read(_sub_device_file).to_i(16).to_s(16) : nil
|
150
|
+
prepend_0(sub_device) if sub_device
|
151
|
+
|
152
|
+
_uevent = File.join(x, 'uevent'.freeze)
|
153
|
+
uevent = File.readable?(_uevent) ? IO.foreach(_uevent) : nil
|
154
|
+
|
155
|
+
kernel_driver = if uevent
|
156
|
+
uevent.find { |_x|
|
157
|
+
_x.split(?=.freeze)[0].to_s.tap(&:strip!) == 'DRIVER'.freeze
|
158
|
+
} &.split(?=) &.[](1) &.tap(&:strip!)
|
159
|
+
else
|
160
|
+
nil
|
161
|
+
end
|
161
162
|
|
162
|
-
|
163
|
-
|
163
|
+
_revision_file = File.join(x, 'revision'.freeze)
|
164
|
+
revision = File.readable?(_revision_file) ? IO.read(_revision_file).tap(&:strip!) : ''.freeze
|
164
165
|
|
165
|
-
|
166
|
-
|
166
|
+
_irq_file = File.join(x, 'irq'.freeze)
|
167
|
+
irq = File.readable?(_irq_file) ? IO.read(_irq_file).to_i : nil
|
167
168
|
|
168
|
-
|
169
|
-
|
169
|
+
_enable_file = File.join(x, 'enable'.freeze)
|
170
|
+
enable = File.readable?(_enable_file) ? IO.read(_enable_file).to_i == 1 : nil
|
170
171
|
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
172
|
+
query = if hwdata && sub_vendor && sub_device
|
173
|
+
query_hwdata(vendor, device, sub_vendor, sub_device)
|
174
|
+
elsif hwdata && sub_vendor
|
175
|
+
query_hwdata(vendor, device, sub_vendor)
|
176
|
+
elsif hwdata
|
177
|
+
query_hwdata(vendor, device)
|
178
|
+
else
|
179
|
+
{}
|
180
|
+
end
|
180
181
|
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
182
|
+
ret = {
|
183
|
+
path: x, id: "#{vendor}:#{device}",
|
184
|
+
vendor: vendor, device: device
|
185
|
+
}
|
185
186
|
|
186
|
-
|
187
|
-
|
187
|
+
ret.merge!(sub_vendor: sub_vendor) if sub_vendor
|
188
|
+
ret.merge!(sub_device: sub_device) if sub_device
|
188
189
|
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
190
|
+
ret.merge!(kernel_driver: kernel_driver) if kernel_driver
|
191
|
+
ret.merge!(revision: revision) unless revision.empty?
|
192
|
+
ret.merge!(irq: irq) if irq
|
193
|
+
ret.merge!(enable: enable) unless enable.nil?
|
194
|
+
ret.merge!(hwdata: query) unless query.empty?
|
194
195
|
|
195
|
-
|
196
|
-
|
196
|
+
ret
|
197
|
+
rescue StandardError
|
198
|
+
end
|
199
|
+
}.tap(&:compact!)
|
197
200
|
end
|
198
201
|
|
199
202
|
##
|
data/lib/linux_stat/usb.rb
CHANGED
@@ -49,72 +49,75 @@ module LinuxStat
|
|
49
49
|
return [] unless @@sys_usb_readable
|
50
50
|
|
51
51
|
Dir['/sys/bus/usb/devices/*/'.freeze].sort!.map! { |x|
|
52
|
-
|
53
|
-
|
54
|
-
|
52
|
+
begin
|
53
|
+
id_vendor_file = File.join(x, 'idVendor'.freeze)
|
54
|
+
next unless File.readable?(id_vendor_file)
|
55
|
+
id_vendor = IO.read(id_vendor_file).strip
|
55
56
|
|
56
|
-
|
57
|
-
|
58
|
-
|
57
|
+
id_product_file = File.join(x, 'idProduct'.freeze)
|
58
|
+
next unless File.readable?(id_vendor_file)
|
59
|
+
id_product = IO.read(id_product_file).strip
|
59
60
|
|
60
|
-
|
61
|
-
|
61
|
+
bus_num_file = File.join(x, 'busnum'.freeze)
|
62
|
+
bus_num = File.readable?(bus_num_file) ? IO.read(bus_num_file).strip : ''.freeze
|
62
63
|
|
63
|
-
|
64
|
-
|
64
|
+
dev_num_file = File.join(x, 'devnum'.freeze)
|
65
|
+
dev_num = File.readable?(dev_num_file) ? IO.read(dev_num_file).strip : ''.freeze
|
65
66
|
|
66
|
-
|
67
|
-
|
67
|
+
serial_file = File.join(x, 'serial'.freeze)
|
68
|
+
serial = File.readable?(serial_file) ? IO.read(serial_file).strip : ''.freeze
|
68
69
|
|
69
|
-
|
70
|
-
|
70
|
+
product_file = File.join(x, 'product'.freeze)
|
71
|
+
product = File.readable?(product_file) ? IO.read(product_file).strip : ''.freeze
|
71
72
|
|
72
|
-
|
73
|
-
|
73
|
+
manufacturer_file = File.join(x, 'manufacturer'.freeze)
|
74
|
+
manufacturer = File.readable?(manufacturer_file) ? IO.read(manufacturer_file).strip : ''.freeze
|
74
75
|
|
75
|
-
|
76
|
-
|
76
|
+
removable_file = File.join(x, 'removable'.freeze)
|
77
|
+
removable = File.readable?(removable_file) ? IO.read(removable_file).strip.downcase : ''.freeze
|
77
78
|
|
78
|
-
|
79
|
-
|
79
|
+
authorized_file = File.join(x, 'authorized'.freeze)
|
80
|
+
authorized = File.readable?(authorized_file) ? IO.read(authorized_file).to_i : ''.freeze
|
80
81
|
|
81
|
-
|
82
|
-
|
82
|
+
b_max_power_file = File.join(x, 'bMaxPower'.freeze)
|
83
|
+
b_max_power = File.readable?(b_max_power_file) ? IO.read(b_max_power_file).strip : ''.freeze
|
83
84
|
|
84
|
-
|
85
|
-
|
85
|
+
b_max_packet_size0_file = File.join(x, 'bMaxPacketSize0'.freeze)
|
86
|
+
b_max_packet_size0 = File.readable?(b_max_packet_size0_file) ? IO.read(b_max_packet_size0_file).to_i : ''.freeze
|
86
87
|
|
87
|
-
|
88
|
+
query = hwdata ? query_hwdata(id_vendor, id_product) : {}
|
88
89
|
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
90
|
+
is_removable = if removable == 'removable'.freeze
|
91
|
+
true
|
92
|
+
elsif removable == 'unknown'.freeze
|
93
|
+
nil
|
94
|
+
else
|
95
|
+
false
|
96
|
+
end
|
96
97
|
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
98
|
+
ret = {
|
99
|
+
path: x, id: "#{id_vendor}:#{id_product}",
|
100
|
+
vendor_id: id_vendor, product_id: id_product
|
101
|
+
}
|
101
102
|
|
102
|
-
|
103
|
-
|
103
|
+
ret.merge!(bus_num: bus_num.to_i) unless bus_num.empty?
|
104
|
+
ret.merge!(dev_num: dev_num.to_i) unless dev_num.empty?
|
104
105
|
|
105
|
-
|
106
|
+
ret.merge!(serial: serial) unless serial.empty?
|
106
107
|
|
107
|
-
|
108
|
-
|
109
|
-
|
108
|
+
ret.merge!(hwdata: query) unless query.empty?
|
109
|
+
ret.merge!(product: product) unless product.empty?
|
110
|
+
ret.merge!(manufacturer: manufacturer) unless manufacturer.empty?
|
110
111
|
|
111
|
-
|
112
|
-
|
112
|
+
ret.merge!(removable: is_removable) unless is_removable.nil?
|
113
|
+
ret.merge!(authorized: authorized == 1)
|
113
114
|
|
114
|
-
|
115
|
-
|
115
|
+
ret.merge!(b_max_power: b_max_power) unless b_max_power.empty?
|
116
|
+
ret.merge!(b_max_packet_size0: b_max_packet_size0) if b_max_packet_size0
|
116
117
|
|
117
|
-
|
118
|
+
ret
|
119
|
+
rescue StandardError
|
120
|
+
end
|
118
121
|
}.tap(&:compact!)
|
119
122
|
end
|
120
123
|
|
data/lib/linux_stat/version.rb
CHANGED