hardware_information 1.0.71

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of hardware_information might be problematic. Click here for more details.

Files changed (39) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +65 -0
  3. data/bin/hardware_information +12 -0
  4. data/doc/README.gen +25 -0
  5. data/hardware_information.gemspec +44 -0
  6. data/lib/hardware_information/class/colours.rb +82 -0
  7. data/lib/hardware_information/class/constants.rb +145 -0
  8. data/lib/hardware_information/class/hardware_information.rb +32 -0
  9. data/lib/hardware_information/class/initialize.rb +24 -0
  10. data/lib/hardware_information/class/make_line.rb +55 -0
  11. data/lib/hardware_information/class/menu.rb +52 -0
  12. data/lib/hardware_information/class/misc.rb +275 -0
  13. data/lib/hardware_information/class/obtain.rb +255 -0
  14. data/lib/hardware_information/class/reset.rb +54 -0
  15. data/lib/hardware_information/class/run.rb +48 -0
  16. data/lib/hardware_information/css/project.css +3 -0
  17. data/lib/hardware_information/gui/gtk2/purchased_hardware/purchased_hardware.rb +34 -0
  18. data/lib/hardware_information/gui/gtk2/show_input_devices/show_input_devices.rb +34 -0
  19. data/lib/hardware_information/gui/gtk3/mounted_harddiscs/mounted_harddiscs.rb +103 -0
  20. data/lib/hardware_information/gui/gtk3/purchased_hardware/purchased_hardware.rb +34 -0
  21. data/lib/hardware_information/gui/gtk3/show_input_devices/show_input_devices.rb +34 -0
  22. data/lib/hardware_information/gui/libui/mounted_harddiscs/mounted_harddiscs.rb +88 -0
  23. data/lib/hardware_information/gui/shared_code/mounted_harddiscs/mounted_harddiscs_module.rb +107 -0
  24. data/lib/hardware_information/gui/shared_code/purchased_hardware/purchased_hardware_module.rb +291 -0
  25. data/lib/hardware_information/gui/shared_code/show_input_devices/show_input_devices_module.rb +187 -0
  26. data/lib/hardware_information/misc/purchased_hardware/README.md +7 -0
  27. data/lib/hardware_information/misc/purchased_hardware/purchased_hardware.rb +169 -0
  28. data/lib/hardware_information/monitor/README.md +6 -0
  29. data/lib/hardware_information/monitor/monitor.rb +36 -0
  30. data/lib/hardware_information/project/project.rb +29 -0
  31. data/lib/hardware_information/version/version.rb +19 -0
  32. data/lib/hardware_information/www/embeddable_interface.rb +52 -0
  33. data/lib/hardware_information/www/my_hardware.cgi +7 -0
  34. data/lib/hardware_information/www/my_hardware.rb +462 -0
  35. data/lib/hardware_information/www/my_hardware_for_sinatra.rb +65 -0
  36. data/lib/hardware_information/yaml/colours_for_the_hardware_information_project.yml +30 -0
  37. data/lib/hardware_information/yaml/usb_errors/usb_errors.yml +2 -0
  38. data/lib/hardware_information.rb +7 -0
  39. metadata +95 -0
@@ -0,0 +1,275 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ class HardwareInformation
6
+
7
+ # ========================================================================= #
8
+ # === set_run_already
9
+ # ========================================================================= #
10
+ def set_run_already(i)
11
+ @run_already = i
12
+ end
13
+
14
+ # ========================================================================= #
15
+ # === pad?
16
+ # ========================================================================= #
17
+ def pad?
18
+ @default_padding
19
+ end
20
+
21
+ # ========================================================================= #
22
+ # === append_newline
23
+ # ========================================================================= #
24
+ def append_newline
25
+ add N
26
+ end
27
+
28
+ # ========================================================================= #
29
+ # === report_result
30
+ # ========================================================================= #
31
+ def report_result
32
+ e string?
33
+ end
34
+
35
+ # ========================================================================= #
36
+ # === string?
37
+ # ========================================================================= #
38
+ def string?
39
+ @string
40
+ end; alias string string? # === string
41
+
42
+ # ========================================================================= #
43
+ # === set_commandline_mode
44
+ # ========================================================================= #
45
+ def set_commandline_mode
46
+ @mode = :commandline
47
+ end
48
+
49
+ # ========================================================================= #
50
+ # === set_web_mode
51
+ # ========================================================================= #
52
+ def set_web_mode
53
+ @mode = :web
54
+ end
55
+
56
+ # ========================================================================= #
57
+ # === default_ljust
58
+ # ========================================================================= #
59
+ def default_rjust(i)
60
+ if i.is_a? Array # We do not handle Arrays.
61
+ i
62
+ else
63
+ i.to_s.rjust(MAIN_DEFAULT_RJUST)
64
+ end
65
+ end
66
+
67
+ # ========================================================================= #
68
+ # === _ (_ tag)
69
+ #
70
+ # This method, as a shortcut, makes use of the method called add(),
71
+ # but it will also append a newline to the given input and support
72
+ # colours (if given as argument).
73
+ # ========================================================================= #
74
+ def _(i, optional_colour = nil)
75
+ if optional_colour and use_colours? # Add colours only if needed.
76
+ if optional_colour.is_a? Symbol
77
+ i = ::Colours.send(optional_colour, i)
78
+ else
79
+ i = optional_colour+i+rev
80
+ end
81
+ end
82
+ add i+N # We try it with mandatory newline for now.
83
+ end
84
+
85
+ # ========================================================================= #
86
+ # === add_title
87
+ # ========================================================================= #
88
+ def add_title
89
+ optional_colour = nil
90
+ if use_colours?
91
+ if Object.const_defined? :Colours # User has the colours gem installed.
92
+ optional_colour = :mediumslateblue
93
+ else
94
+ optional_colour = green?
95
+ end
96
+ end
97
+ _ N+'Hardware Information'+N, optional_colour
98
+ end
99
+
100
+ # ========================================================================= #
101
+ # === colourize_filesize_of_the_harddisc
102
+ # ========================================================================= #
103
+ def colourize_filesize_of_the_harddisc(i)
104
+ Colours.send(
105
+ @hash_use_these_colours[:filesize_of_the_harddisc],
106
+ i
107
+ )
108
+ end
109
+
110
+ # ========================================================================= #
111
+ # === colourize_file_system_type
112
+ # ========================================================================= #
113
+ def colourize_file_system_type(i)
114
+ Colours.send(
115
+ @hash_use_these_colours[:file_system_type],
116
+ i
117
+ )
118
+ end
119
+
120
+ # ========================================================================= #
121
+ # === colourize_n_percent_occupied
122
+ # ========================================================================= #
123
+ def colourize_n_percent_occupied(i)
124
+ Colours.send(
125
+ @hash_use_these_colours[:n_percent_occupied],
126
+ i
127
+ )
128
+ end
129
+
130
+ # ========================================================================= #
131
+ # === colourize_highlighted_content
132
+ # ========================================================================= #
133
+ def colourize_highlighted_content(i)
134
+ Colours.send(
135
+ @hash_use_these_colours[:highlighted_content],
136
+ i
137
+ )
138
+ end
139
+
140
+ # ========================================================================= #
141
+ # === colourize_via_regular_colour
142
+ #
143
+ # Do note that this is presently hardcoded to the "thistle" colour.
144
+ # Unsure whether to allow the user more customization here, so for
145
+ # the time being this remains hardcoded.
146
+ # ========================================================================= #
147
+ def colourize_via_regular_colour(i)
148
+ Colours.send(
149
+ :thistle,
150
+ i
151
+ )
152
+ end
153
+
154
+ # ========================================================================= #
155
+ # === append_output_generated_via_lsblk
156
+ #
157
+ # Typical output generated via lsblk may be like this:
158
+ #
159
+ # NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
160
+ # sda 8:0 0 2.7T 0 disk
161
+ # ├─sda1 8:1 0 1M 0 part
162
+ # └─sda2 8:2 0 2.7T 0 part /
163
+ # sr0 11:0 1 1024M 0 rom
164
+ #
165
+ # ========================================================================= #
166
+ def append_output_generated_via_lsblk
167
+ _ = ''.dup
168
+ # ======================================================================== #
169
+ # Next we will display/obtain more information, via df.
170
+ # ======================================================================== #
171
+ extended_information = `df -T`.split(N)
172
+ result = `lsblk`.strip.split(N).map {|line| " #{line}" }
173
+ result.each {|entry|
174
+ # ===================================================================== #
175
+ # Modify the input.
176
+ # ===================================================================== #
177
+ if entry.include? ' /'
178
+ # =================================================================== #
179
+ # These entries will be colourized. Note that the first part may
180
+ # look like this: "└─sda2"
181
+ #
182
+ # " └─sda2 8:2 0 2.7T 0 part /"
183
+ #
184
+ # =================================================================== #
185
+ splitted = entry.split(' ')
186
+ # =================================================================== #
187
+ # The root_entry may look like this:
188
+ #
189
+ # /dev/sda2 ext4 2883218608 529813416 2206875608 20% /
190
+ #
191
+ # =================================================================== #
192
+ selection = extended_information.select {|line|
193
+ last = line.split(' ').last
194
+ last == '/' or last.include?('USB')
195
+ }
196
+ if selection
197
+ selection = selection.select {|inner_line|
198
+ inner_line.end_with? splitted[-1]
199
+ }
200
+ if selection.is_a?(Array) and selection.first
201
+ selection = selection.first.split(' ')
202
+ end
203
+ end
204
+ splitted[-1] = colourize_highlighted_content(splitted[-1].ljust(12)) # ← The last part.
205
+ splitted[0] = colourize_highlighted_content(" #{splitted[0]}") # ← The first part.
206
+ splitted[1] = colourize_via_regular_colour(splitted[1].strip.ljust(4).rjust(6))
207
+ splitted[2] = colourize_via_regular_colour(" #{splitted[2].strip.rjust(2)}")
208
+ splitted[3] = colourize_filesize_of_the_harddisc(splitted[3].strip.rjust(5).ljust(6)) # ← The size of the harddisc.
209
+ splitted[4] = colourize_via_regular_colour(splitted[4].strip.ljust(2).rjust(3))
210
+ splitted[5] = colourize_via_regular_colour(splitted[5].strip)
211
+ file_system_type = selection[1]
212
+ n_percent_occupied = selection[5]
213
+ # =================================================================== #
214
+ # /dev/sda2 ext4 2883218608 529753916 2206935108 20% /"]
215
+ # =================================================================== #
216
+ splitted = splitted.join(' ')
217
+ unless entry.include? '/boot/' # ← Don't show information for /boot/ entries.
218
+ splitted << colourize_file_system_type(" (#{file_system_type})")
219
+ splitted << colourize_n_percent_occupied(" (#{n_percent_occupied} used)")
220
+ end
221
+ entry = splitted
222
+ else # Else we only do a slightly simpler colourization-part.
223
+ splitted = entry.split(' ')
224
+ splitted[0] = colourize_via_regular_colour(" #{splitted[0].ljust(6)}") # ← The first part.
225
+ splitted[1] = colourize_via_regular_colour(splitted[1].strip.ljust(4).rjust(6))
226
+ splitted[2] = colourize_via_regular_colour(" #{splitted[2].strip.rjust(2)}")
227
+ splitted[3] = colourize_filesize_of_the_harddisc(splitted[3].strip.rjust(5).ljust(6)) # ← The size of the harddisc.
228
+ splitted[4] = colourize_via_regular_colour(splitted[4].strip.ljust(2).rjust(3))
229
+ splitted[5] = colourize_via_regular_colour(splitted[5].strip)
230
+ if splitted[6] and (splitted[6] == '[SWAP]')
231
+ splitted[6] = royalblue(splitted[6])
232
+ end
233
+ entry = splitted.join(' ')
234
+ entry = colourize_via_regular_colour(entry)
235
+ end
236
+ _ << "#{entry}\n" # Now we can append this.
237
+ }
238
+ # ======================================================================= #
239
+ # Add two newlines too, for slightly more readable output.
240
+ # ======================================================================= #
241
+ _ << "#{N}#{N}"
242
+ add _
243
+ end
244
+
245
+ # ========================================================================= #
246
+ # === default_ljust
247
+ # ========================================================================= #
248
+ def default_ljust(i)
249
+ i.to_s.ljust(15)
250
+ end
251
+
252
+ # ========================================================================= #
253
+ # === add_audio_information (audio tag)
254
+ # ========================================================================= #
255
+ def add_audio_information
256
+ audio_device = `aplay -l`.scan(/card.+$/).first
257
+ make_line(pad?+'Audio Device', N+(pad? * 2)+audio_device.to_s)
258
+ end
259
+
260
+ # ========================================================================= #
261
+ # === find_out_the_amount_of_processors
262
+ # ========================================================================= #
263
+ def find_out_the_amount_of_processors
264
+ data = CPUINFO.scan(/cpu cores\t: (\d+)\n/).flatten.map(&:to_i).sum.to_i
265
+ make_line(' Processors', data) { :slateblue }
266
+ end
267
+
268
+ # ========================================================================= #
269
+ # === add (add tag)
270
+ # ========================================================================= #
271
+ def add(i)
272
+ @string << i
273
+ end
274
+
275
+ end
@@ -0,0 +1,255 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'hardware_information/class/obtain.rb'
6
+ # =========================================================================== #
7
+ class HardwareInformation
8
+
9
+ # ========================================================================= #
10
+ # === obtain_virtualization
11
+ #
12
+ # This method call may fail, depending on the output of the LSCPU
13
+ # command, hence why this check has to be a bit more complicated.
14
+ # ========================================================================= #
15
+ def obtain_virtualization
16
+ result = LSCPU.grep(/Virtualization:/)
17
+ if result
18
+ result = result.first.split(':').last.strip
19
+ make_line(' Virtualization', result) { :mediumseagreen }
20
+ end
21
+ end
22
+
23
+ require 'hardware_information/monitor/monitor.rb'
24
+ # ========================================================================= #
25
+ # === obtain_information_about_the_monitor
26
+ # ========================================================================= #
27
+ def obtain_information_about_the_monitor
28
+ make_line(
29
+ ' Monitor resolution',
30
+ ::HardwareInformation.return_the_monitor_resolution
31
+ ) { :mediumspringgreen }
32
+ end
33
+
34
+ # ========================================================================= #
35
+ # === obtain_information_about_the_GPU
36
+ # ========================================================================= #
37
+ def obtain_information_about_the_GPU
38
+ make_line(
39
+ ' GPU',
40
+ return_information_about_the_GPU
41
+ ) { :mediumpurple }
42
+ end
43
+
44
+ # ========================================================================= #
45
+ # === return_information_about_the_GPU
46
+ #
47
+ # This method will return information about the GPU in use on the given
48
+ # computer system.
49
+ #
50
+ # This may be similar to a String such as:
51
+ #
52
+ # GPU: AMD ATI Radeon R7 Graphics
53
+ #
54
+ # ========================================================================= #
55
+ def return_information_about_the_GPU
56
+ result = `lspci #{ERROR_LINE}`.strip
57
+ if result and result.include?('VGA compatible controller')
58
+ result = result.split(N).select {|line|
59
+ line.include? 'VGA compatible controller'
60
+ }.first
61
+ # ===================================================================== #
62
+ # Work on:
63
+ #
64
+ # VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Kaveri [Radeon R7 Graphics]"
65
+ #
66
+ # ===================================================================== #
67
+ result = result.split('. [').last.
68
+ delete('[]').tr('/',' ')
69
+ end
70
+ return result
71
+ end
72
+
73
+ # ========================================================================= #
74
+ # === obtain_firmware_information
75
+ #
76
+ # Note that this functionality depends on the binary called "lshw".
77
+ # ========================================================================= #
78
+ def obtain_firmware_information
79
+ result = `lshw 2>&1`
80
+ if result
81
+ # ===================================================================== #
82
+ # See: https://rubular.com/r/Uf4XqmbZW3atCy
83
+ # ===================================================================== #
84
+ regex =
85
+ /description: Motherboard\s+product: (.+)\s+vendor: (.+)\s+[.:0-9a-zA-Z\n ]+\*-firmware[.:0-9a-zA-Z\n ]+version: (\d{0,4}[0-9.]+)\s+date: (\d{1,2}.+)/
86
+ result =~ regex
87
+ motherboard = $1.to_s.dup
88
+ motherboard_vendor = $2.to_s.dup
89
+ bios_version = $3.to_s.dup
90
+ bios_release = $4.to_s.dup
91
+ # ===================================================================== #
92
+ # Show some more information next, in particular the BIOS.
93
+ # ===================================================================== #
94
+ make_line(' Motherboard vendor', motherboard_vendor)
95
+ make_line(' Motherboard', motherboard)
96
+ make_line(' BIOS version', bios_version)
97
+ make_line(' BIOS released on', bios_release)
98
+ end
99
+ end
100
+
101
+ # ========================================================================= #
102
+ # === obtain_vendor_id
103
+ # ========================================================================= #
104
+ def obtain_vendor_id
105
+ result = LSCPU.grep(/Vendor ID:/).first.split(':').last.strip
106
+ make_line(' Vendor ID', result) { :mediumseagreen }
107
+ end
108
+
109
+ # ========================================================================= #
110
+ # === obtain_n_cores
111
+ #
112
+ # Return how many cores that machine has.
113
+ # ========================================================================= #
114
+ def obtain_n_cores
115
+ make_line(
116
+ ' n CPU cores',
117
+ `nproc --all`.strip
118
+ ) { :lightgreen }
119
+ end
120
+
121
+ # ========================================================================= #
122
+ # === obtain_ram (ram tag)
123
+ # ========================================================================= #
124
+ def obtain_ram
125
+ make_line(' RAM (max)', RAM_AVAILABLE) { :orangered }
126
+ end
127
+
128
+ # ========================================================================= #
129
+ # === obtain_ram_free
130
+ # ========================================================================= #
131
+ def obtain_ram_free
132
+ make_line(' RAM (free)', RAM_AVAILABLE_FREE) { :orangered }
133
+ end
134
+
135
+ # ========================================================================= #
136
+ # === obtain_swap_size (swap tag)
137
+ # ========================================================================= #
138
+ def obtain_swap_size
139
+ _ = DATASET_FROM_PROC_MEMINFO.grep(/SwapTotal:/).first.
140
+ split(' ').last.strip.upcase
141
+ make_line(' SwapTotal', _) { :springgreen }
142
+ end
143
+
144
+ # ========================================================================= #
145
+ # === obtain_system_bogomips
146
+ #
147
+ # BogoMIPS measure CPU speed.
148
+ # ========================================================================= #
149
+ def obtain_system_bogomips
150
+ make_line ' BogoMIPS',
151
+ SPLITTED_CPUINFO.select {|line|
152
+ line.include? 'bogomips'
153
+ }.first.split(':')[1].strip
154
+ end
155
+
156
+ # ========================================================================= #
157
+ # === obtain_pci_information
158
+ # ========================================================================= #
159
+ def obtain_pci_information
160
+ array_fetch_these_types = %w(
161
+ SMBus Audio IDE VGA
162
+ Memory Controller
163
+ )
164
+ results = []
165
+ if LSPCI
166
+ LSPCI.split(N).each {|line|
167
+ array_fetch_these_types.each { |inner_line|
168
+ results << line if line.include? inner_line
169
+ }
170
+ }
171
+ make_line ' PCI Devices', results
172
+ end
173
+ end
174
+
175
+ # ========================================================================= #
176
+ # === obtain_chip_mhz
177
+ # ========================================================================= #
178
+ def obtain_chip_mhz
179
+ make_line ' Chip MHzx',
180
+ SPLITTED_CPUINFO.select {|line|
181
+ line.include? 'cpu MHz'
182
+ }.first.split(':')[1].strip
183
+ end
184
+
185
+ # ========================================================================= #
186
+ # === obtain_cache_size
187
+ # ========================================================================= #
188
+ def obtain_cache_size
189
+ make_line ' Cache Size',
190
+ SPLITTED_CPUINFO.select {|line|
191
+ line.include? 'cache size'
192
+ }.first.split(':')[1].strip
193
+ end
194
+
195
+ # ========================================================================= #
196
+ # === obtain_cpu_model
197
+ # ========================================================================= #
198
+ def obtain_cpu_model
199
+ result = SPLITTED_CPUINFO.select {|line|
200
+ line.include? 'model name'
201
+ }.first.split(':')[1].strip
202
+ make_line ' Model', result
203
+ end
204
+
205
+ # ========================================================================= #
206
+ # === obtain_byte_order
207
+ # ========================================================================= #
208
+ def obtain_byte_order
209
+ result = LSCPU.grep(/Byte Order:/).first.split(':').last.strip
210
+ make_line ' Byte Order', result
211
+ end
212
+
213
+ # ========================================================================= #
214
+ # === obtain_cpu_family
215
+ # ========================================================================= #
216
+ def obtain_cpu_family
217
+ result = LSCPU.grep(/CPU family:/).first.split(':').last.strip
218
+ make_line ' CPU family', result
219
+ end
220
+
221
+ # ========================================================================= #
222
+ # === obtain_model
223
+ # ========================================================================= #
224
+ def obtain_model
225
+ result = LSCPU.grep(/Model:/).first.split(':').last.strip
226
+ make_line ' Model', result
227
+ end
228
+
229
+ # ========================================================================= #
230
+ # === obtain_cpu_op_modes
231
+ # ========================================================================= #
232
+ def obtain_cpu_op_modes
233
+ result = LSCPU.grep(/CPU op-mode/).first.split(':').last.strip
234
+ make_line(' CPU op-mode(s)', result)
235
+ end
236
+
237
+ # ========================================================================= #
238
+ # === obtain_linux_kernel_version
239
+ #
240
+ # This method should return a String, such as '4.14.4'.
241
+ # ========================================================================= #
242
+ def obtain_linux_kernel_version
243
+ result = `uname -r`.strip
244
+ make_line(' Linux kernel version', result)
245
+ end
246
+
247
+ # ========================================================================= #
248
+ # === obtain_architecture
249
+ # ========================================================================= #
250
+ def obtain_architecture
251
+ result = LSCPU.grep(/Architecture:/).first.split(':').last.strip
252
+ make_line(' Architecture', result) { :violet }
253
+ end
254
+
255
+ end
@@ -0,0 +1,54 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'hardware_information/class/reset.rb'
6
+ # =========================================================================== #
7
+ class HardwareInformation
8
+
9
+ # ========================================================================= #
10
+ # === reset (reset tag)
11
+ # ========================================================================= #
12
+ def reset
13
+ # ======================================================================= #
14
+ # === @string
15
+ # ======================================================================= #
16
+ @string = ''.dup
17
+ # ======================================================================= #
18
+ # === @default_colour
19
+ # ======================================================================= #
20
+ @default_colour = green?
21
+ # ======================================================================= #
22
+ # === @default_padding
23
+ #
24
+ # This variable denotes the leading padding. That padding will be
25
+ # prepended to the output.
26
+ # ======================================================================= #
27
+ @default_padding = ' '.dup # 1 space.
28
+ # ======================================================================= #
29
+ # === @use_colours
30
+ # ======================================================================= #
31
+ @use_colours = true # If true we use ANSI colours.
32
+ # ======================================================================= #
33
+ # === @use_colon_as_delimiter
34
+ # ======================================================================= #
35
+ @use_colon_as_delimiter = true # If true we use colon as delimiter.
36
+ # ======================================================================= #
37
+ # === @hash_use_these_colours
38
+ #
39
+ # Next we will load the internal .yml file, if it exists.
40
+ # ======================================================================= #
41
+ @hash_use_these_colours = {}
42
+ if File.exist? FILE_COLOURS_FOR_THE_HARDWARE_PROJECT
43
+ require 'yaml'
44
+ @hash_use_these_colours.update(
45
+ YAML.load_file(FILE_COLOURS_FOR_THE_HARDWARE_PROJECT)
46
+ )
47
+ else # else use a hardcoded approach.
48
+ @hash_use_these_colours[:filesize_of_the_harddisc] = :orchid
49
+ @hash_use_these_colours[:file_system_type] = :steelblue
50
+ end
51
+ set_commandline_mode # Default.
52
+ end
53
+
54
+ end
@@ -0,0 +1,48 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'hardware_information/class/run.rb'
6
+ # =========================================================================== #
7
+ class HardwareInformation
8
+
9
+ # ========================================================================= #
10
+ # === run
11
+ # ========================================================================= #
12
+ def run
13
+ add_title
14
+ obtain_architecture # === Architecture
15
+ obtain_cpu_model # === The CPU model, such as "AMD"
16
+ obtain_cpu_op_modes # === CPU op-modes
17
+ obtain_n_cores # === n CPU cores
18
+ find_out_the_amount_of_processors # === Amount of processors
19
+ obtain_vendor_id # === Vendor ID
20
+ obtain_virtualization # === Virtualization
21
+ obtain_linux_kernel_version # === The Linux kernel version
22
+ obtain_ram # === Amount of RAM
23
+ obtain_ram_free
24
+ obtain_swap_size # === SwapTotal
25
+ obtain_chip_mhz # === Chip MHzx
26
+ obtain_cache_size
27
+ obtain_system_bogomips # === BogoMIPS
28
+ obtain_byte_order
29
+ obtain_cpu_family
30
+ obtain_model # === Model
31
+ obtain_information_about_the_GPU # === Show the GPU in use
32
+ obtain_firmware_information # === Firmware Information
33
+ obtain_pci_information
34
+ add_audio_information # === Show the audio device
35
+ obtain_information_about_the_monitor # === Gather information about the monitor
36
+ append_newline
37
+ append_output_generated_via_lsblk
38
+ report_result if @run_already # Last but not least, report the result.
39
+ end
40
+
41
+ # ========================================================================= #
42
+ # === HardwareInformation.run
43
+ # ========================================================================= #
44
+ def self.run
45
+ self.new
46
+ end; self.instance_eval { alias report run } # === HardwareInformation.report
47
+
48
+ end
@@ -0,0 +1,3 @@
1
+ #image1 {
2
+ border: 1px solid black;
3
+ }
@@ -0,0 +1,34 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # === HardwareInformation::GUI::Gtk::PurchasedHardware
6
+ # =========================================================================== #
7
+ # require 'hardware_information/gui/gtk2/purchased_hardware/purchased_hardware.rb'
8
+ # HardwareInformation::GUI::Gtk::PurchasedHardware.new
9
+ # =========================================================================== #
10
+ require 'gtk_paradise/require_gtk2'
11
+
12
+ class HardwareInformation
13
+
14
+ module GUI
15
+
16
+ module Gtk
17
+
18
+ class PurchasedHardware < ::Gtk::VBox
19
+
20
+ require 'hardware_information/gui/shared_code/purchased_hardware/purchased_hardware_module.rb'
21
+ include ::HardwareInformation::GUI::Gtk::PurchasedHardwareModule
22
+
23
+ # ========================================================================= #
24
+ # === HardwareInformation::GUI::Gtk::PurchasedHardware.run
25
+ # ========================================================================= #
26
+ def self.run
27
+ ::HardwareInformation::GUI::Gtk::PurchasedHardwareModule.run
28
+ end
29
+
30
+ end; end; end; end
31
+
32
+ if __FILE__ == $PROGRAM_NAME
33
+ HardwareInformation::GUI::Gtk::PurchasedHardware.run
34
+ end