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.
- checksums.yaml +7 -0
- data/README.md +65 -0
- data/bin/hardware_information +12 -0
- data/doc/README.gen +25 -0
- data/hardware_information.gemspec +44 -0
- data/lib/hardware_information/class/colours.rb +82 -0
- data/lib/hardware_information/class/constants.rb +145 -0
- data/lib/hardware_information/class/hardware_information.rb +32 -0
- data/lib/hardware_information/class/initialize.rb +24 -0
- data/lib/hardware_information/class/make_line.rb +55 -0
- data/lib/hardware_information/class/menu.rb +52 -0
- data/lib/hardware_information/class/misc.rb +275 -0
- data/lib/hardware_information/class/obtain.rb +255 -0
- data/lib/hardware_information/class/reset.rb +54 -0
- data/lib/hardware_information/class/run.rb +48 -0
- data/lib/hardware_information/css/project.css +3 -0
- data/lib/hardware_information/gui/gtk2/purchased_hardware/purchased_hardware.rb +34 -0
- data/lib/hardware_information/gui/gtk2/show_input_devices/show_input_devices.rb +34 -0
- data/lib/hardware_information/gui/gtk3/mounted_harddiscs/mounted_harddiscs.rb +103 -0
- data/lib/hardware_information/gui/gtk3/purchased_hardware/purchased_hardware.rb +34 -0
- data/lib/hardware_information/gui/gtk3/show_input_devices/show_input_devices.rb +34 -0
- data/lib/hardware_information/gui/libui/mounted_harddiscs/mounted_harddiscs.rb +88 -0
- data/lib/hardware_information/gui/shared_code/mounted_harddiscs/mounted_harddiscs_module.rb +107 -0
- data/lib/hardware_information/gui/shared_code/purchased_hardware/purchased_hardware_module.rb +291 -0
- data/lib/hardware_information/gui/shared_code/show_input_devices/show_input_devices_module.rb +187 -0
- data/lib/hardware_information/misc/purchased_hardware/README.md +7 -0
- data/lib/hardware_information/misc/purchased_hardware/purchased_hardware.rb +169 -0
- data/lib/hardware_information/monitor/README.md +6 -0
- data/lib/hardware_information/monitor/monitor.rb +36 -0
- data/lib/hardware_information/project/project.rb +29 -0
- data/lib/hardware_information/version/version.rb +19 -0
- data/lib/hardware_information/www/embeddable_interface.rb +52 -0
- data/lib/hardware_information/www/my_hardware.cgi +7 -0
- data/lib/hardware_information/www/my_hardware.rb +462 -0
- data/lib/hardware_information/www/my_hardware_for_sinatra.rb +65 -0
- data/lib/hardware_information/yaml/colours_for_the_hardware_information_project.yml +30 -0
- data/lib/hardware_information/yaml/usb_errors/usb_errors.yml +2 -0
- data/lib/hardware_information.rb +7 -0
- metadata +95 -0
checksums.yaml
ADDED
@@ -0,0 +1,7 @@
|
|
1
|
+
---
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: c1d2ab2b6f90e714e2399478e380e88c43b08faf773bf45d2c391e1851d44d51
|
4
|
+
data.tar.gz: 5722c7a24b466396d4516a7e27bc9333f5679ac64856306b3469ff4cc51c1379
|
5
|
+
SHA512:
|
6
|
+
metadata.gz: e4b7ee8f884a7f0a61a9c2434494d2db493bf404cb63c86b7d9bc827665901a3e64f17132d287fd0c5556000aa01c6960a6125f9d1985adb0b31b3476a628516
|
7
|
+
data.tar.gz: 661f01f937f830c54fad8a29d6b10e6528c5aa6be3d70495f13f73897b2b1d6ee51a2d0aa428cc9202f9ea268336c9a85d827c0d45d4a85637c2c6392525741f
|
data/README.md
ADDED
@@ -0,0 +1,65 @@
|
|
1
|
+
## Requiring the project
|
2
|
+
|
3
|
+
You can require this gem via:
|
4
|
+
|
5
|
+
require 'hardware_information'
|
6
|
+
|
7
|
+
## HardwareInformation.report
|
8
|
+
|
9
|
+
This toplevel API will report what hardware has been found
|
10
|
+
on the given computer system.
|
11
|
+
|
12
|
+
## Colour support
|
13
|
+
|
14
|
+
By default class HardwareInformation will try to show colours,
|
15
|
+
if used from the commandline.
|
16
|
+
|
17
|
+
If this is unwanted, you can pass any of the following flags
|
18
|
+
to disable colour support:
|
19
|
+
|
20
|
+
--disable-colours
|
21
|
+
--disable-colors
|
22
|
+
--no-colours
|
23
|
+
--no-colors
|
24
|
+
|
25
|
+
|
26
|
+
## Contact information and mandatory 2FA coming up in 2022
|
27
|
+
|
28
|
+
If your creative mind has ideas and specific suggestions to make this gem
|
29
|
+
more useful in general, feel free to drop me an email at any time, via:
|
30
|
+
|
31
|
+
shevy@inbox.lt
|
32
|
+
|
33
|
+
Before that email I used an email account at Google gmail, but in **2021** I
|
34
|
+
decided to slowly abandon gmail for various reasons. In order to limit this
|
35
|
+
explanation here, allow me to just briefly state that I do not feel as if I
|
36
|
+
want to promote any Google service anymore, for various reasons.
|
37
|
+
|
38
|
+
Do keep in mind that responding to emails may take some time, depending on
|
39
|
+
the amount of work I may have at that moment.
|
40
|
+
|
41
|
+
In 2022 rubygems.org decided to make 2FA mandatory for every gem owner:
|
42
|
+
see https://blog.rubygems.org/2022/06/13/making-packages-more-secure.html
|
43
|
+
|
44
|
+
As I can not use 2FA, for reasons I will skip explaining here (see
|
45
|
+
various github issue discussions in the past), this effectively means that
|
46
|
+
Betty Li and others who run the show at rubygems.org will perma-ban me
|
47
|
+
from using rubygems as a developer.
|
48
|
+
|
49
|
+
As I disagree with that decision completely, this will mean that all my
|
50
|
+
gems will be removed from rubygems.org prior to that sunset date, e. g.
|
51
|
+
before they permanently lock me out from the code that I used
|
52
|
+
to maintain. It is pointless to want to discuss this with them anymore -
|
53
|
+
they have made up their minds and decided that you can only use
|
54
|
+
the code if 2FA is in place, even though the code itself works just
|
55
|
+
fine. If you don't use 2FA you are effectively locked out from your
|
56
|
+
own code; I consider this a malicious attack. See also how they limited
|
57
|
+
discussions to people with mandatory 2FA on the ruby-bugtracker, thus
|
58
|
+
banning everyone permanently without 2FA:
|
59
|
+
|
60
|
+
https://bugs.ruby-lang.org/issues/18800
|
61
|
+
|
62
|
+
Guess it may indeed be time to finally abandon ruby - not because
|
63
|
+
ruby is a bad language, but there are people now in charge who
|
64
|
+
really should not be part of ruby in the first place.
|
65
|
+
|
@@ -0,0 +1,12 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
require 'hardware_information'
|
6
|
+
|
7
|
+
_ = HardwareInformation.new(:do_not_run_yet)
|
8
|
+
unless ARGV.empty?
|
9
|
+
_.menu(ARGV)
|
10
|
+
end
|
11
|
+
_.run
|
12
|
+
_.report_result
|
data/doc/README.gen
ADDED
@@ -0,0 +1,25 @@
|
|
1
|
+
## Requiring the project
|
2
|
+
|
3
|
+
You can require this gem via:
|
4
|
+
|
5
|
+
require 'hardware_information'
|
6
|
+
|
7
|
+
## HardwareInformation.report
|
8
|
+
|
9
|
+
This toplevel API will report what hardware has been found
|
10
|
+
on the given computer system.
|
11
|
+
|
12
|
+
## Colour support
|
13
|
+
|
14
|
+
By default class HardwareInformation will try to show colours,
|
15
|
+
if used from the commandline.
|
16
|
+
|
17
|
+
If this is unwanted, you can pass any of the following flags
|
18
|
+
to disable colour support:
|
19
|
+
|
20
|
+
--disable-colours
|
21
|
+
--disable-colors
|
22
|
+
--no-colours
|
23
|
+
--no-colors
|
24
|
+
|
25
|
+
ADD_CONTACT_INFORMATION
|
@@ -0,0 +1,44 @@
|
|
1
|
+
# =========================================================================== #
|
2
|
+
# Gemspec for Project HardwareInformation.
|
3
|
+
# =========================================================================== #
|
4
|
+
require 'hardware_information/version/version.rb'
|
5
|
+
require 'roebe'
|
6
|
+
|
7
|
+
Gem::Specification.new { |s|
|
8
|
+
|
9
|
+
s.name = 'hardware_information'
|
10
|
+
s.version = HardwareInformation::VERSION
|
11
|
+
s.date = Time.now.strftime('%Y-%m-%d')
|
12
|
+
|
13
|
+
s.summary = <<-EOF
|
14
|
+
|
15
|
+
This small class will output Information about your hardware,
|
16
|
+
i.e. the Processor type and so on. It is supposed to be
|
17
|
+
a really small gem.
|
18
|
+
|
19
|
+
EOF
|
20
|
+
|
21
|
+
s.description = <<-EOF
|
22
|
+
|
23
|
+
This small class will output Information about your hardware,
|
24
|
+
i.e. the Processor type and so on. It is supposed to be
|
25
|
+
a really small gem.
|
26
|
+
|
27
|
+
EOF
|
28
|
+
|
29
|
+
s.authors = ['Robert A. Heiler']
|
30
|
+
s.email = Roebe.email?
|
31
|
+
s.files = Dir['**/*']
|
32
|
+
s.homepage = 'https://rubygems.org/gems/environment_information'
|
33
|
+
s.license = 'GPL-2.0'
|
34
|
+
|
35
|
+
s.required_ruby_version = '>= '+Roebe.third_most_stable_version_of_ruby
|
36
|
+
s.required_rubygems_version = '>= '+Gem::VERSION
|
37
|
+
s.rubygems_version = '>= '+Gem::VERSION
|
38
|
+
|
39
|
+
# ============================================================== #
|
40
|
+
# Dependencies
|
41
|
+
# ============================================================== #
|
42
|
+
s.add_dependency 'colours'
|
43
|
+
|
44
|
+
}
|
@@ -0,0 +1,82 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
class HardwareInformation
|
6
|
+
|
7
|
+
begin
|
8
|
+
require 'colours'
|
9
|
+
include Colours
|
10
|
+
rescue LoadError; end
|
11
|
+
|
12
|
+
# ========================================================================= #
|
13
|
+
# === green?
|
14
|
+
# ========================================================================= #
|
15
|
+
def green?
|
16
|
+
Colours::GREEN
|
17
|
+
end
|
18
|
+
|
19
|
+
# ========================================================================= #
|
20
|
+
# === bold_teal?
|
21
|
+
# ========================================================================= #
|
22
|
+
def bold_teal?
|
23
|
+
Colours::BOLD_TEAL
|
24
|
+
end
|
25
|
+
|
26
|
+
# ========================================================================= #
|
27
|
+
# === use_colours?
|
28
|
+
# ========================================================================= #
|
29
|
+
def use_colours?
|
30
|
+
@use_colours
|
31
|
+
end
|
32
|
+
|
33
|
+
# ========================================================================= #
|
34
|
+
# === enable_colours
|
35
|
+
# ========================================================================= #
|
36
|
+
def enable_colours
|
37
|
+
@use_colours = true
|
38
|
+
end
|
39
|
+
|
40
|
+
# ========================================================================= #
|
41
|
+
# === disable_colours
|
42
|
+
# ========================================================================= #
|
43
|
+
def disable_colours
|
44
|
+
@use_colours = false
|
45
|
+
end
|
46
|
+
|
47
|
+
# ========================================================================= #
|
48
|
+
# === thistle
|
49
|
+
# ========================================================================= #
|
50
|
+
def thistle(i)
|
51
|
+
return Colours.thistle(i) if use_colours?
|
52
|
+
i
|
53
|
+
end
|
54
|
+
|
55
|
+
# ========================================================================= #
|
56
|
+
# === royalblue
|
57
|
+
# ========================================================================= #
|
58
|
+
def royalblue(i)
|
59
|
+
return Colours.royalblue(i) if use_colours?
|
60
|
+
i
|
61
|
+
end
|
62
|
+
|
63
|
+
# ========================================================================= #
|
64
|
+
# === steelblue
|
65
|
+
# ========================================================================= #
|
66
|
+
def steelblue(i)
|
67
|
+
return Colours.steelblue(i) if use_colours?
|
68
|
+
i
|
69
|
+
end
|
70
|
+
|
71
|
+
# ========================================================================= #
|
72
|
+
# === rev
|
73
|
+
# ========================================================================= #
|
74
|
+
def rev
|
75
|
+
if use_colours?
|
76
|
+
Colours.rev
|
77
|
+
else
|
78
|
+
''
|
79
|
+
end
|
80
|
+
end
|
81
|
+
|
82
|
+
end
|
@@ -0,0 +1,145 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'hardware_information/class/constants.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
require 'hardware_information/project/project.rb'
|
8
|
+
|
9
|
+
class HardwareInformation
|
10
|
+
|
11
|
+
# ========================================================================= #
|
12
|
+
# === N
|
13
|
+
# ========================================================================= #
|
14
|
+
N = "\n"
|
15
|
+
|
16
|
+
# ========================================================================= #
|
17
|
+
# === ERROR_LINE
|
18
|
+
# ========================================================================= #
|
19
|
+
ERROR_LINE = '2>&1'
|
20
|
+
|
21
|
+
# ========================================================================= #
|
22
|
+
# === LEFT_PADDING
|
23
|
+
#
|
24
|
+
# How many characters to pad on the left side. Used for the
|
25
|
+
# header_content() method.
|
26
|
+
# ========================================================================= #
|
27
|
+
LEFT_PADDING = 26
|
28
|
+
|
29
|
+
# ========================================================================= #
|
30
|
+
# === MAIN_DEFAULT_RJUST
|
31
|
+
# ========================================================================= #
|
32
|
+
MAIN_DEFAULT_RJUST = 48
|
33
|
+
|
34
|
+
# ========================================================================= #
|
35
|
+
# === CPUINFO_LOCATION
|
36
|
+
#
|
37
|
+
# This constants stores where cpuinfo is kept. Will work only on
|
38
|
+
# Linux, I think.
|
39
|
+
# ========================================================================= #
|
40
|
+
CPUINFO_LOCATION = '/proc/cpuinfo'
|
41
|
+
|
42
|
+
# ========================================================================= #
|
43
|
+
# === PROC_MEMINFO
|
44
|
+
# ========================================================================= #
|
45
|
+
PROC_MEMINFO = '/proc/meminfo'
|
46
|
+
|
47
|
+
# ========================================================================= #
|
48
|
+
# === FILE_COLOURS_FOR_THE_HARDWARE_PROJECT
|
49
|
+
# ========================================================================= #
|
50
|
+
FILE_COLOURS_FOR_THE_HARDWARE_PROJECT =
|
51
|
+
"#{PROJECT_YAML_DIRECTORY}colours_for_the_hardware_information_project.yml"
|
52
|
+
|
53
|
+
# ========================================================================= #
|
54
|
+
# === HardwareInformation.kb_to_mb(i)
|
55
|
+
# ========================================================================= #
|
56
|
+
def self.kb_to_mb(i)
|
57
|
+
(
|
58
|
+
i.gsub(/ kB/,'').to_i / 1024
|
59
|
+
).to_s+ ' MB'
|
60
|
+
end
|
61
|
+
|
62
|
+
# ========================================================================= #
|
63
|
+
# === HardwareInformation.is_on_windows?
|
64
|
+
# ========================================================================= #
|
65
|
+
def self.is_on_windows?
|
66
|
+
if RUBY_PLATFORM.include?('win') or # if on windows.
|
67
|
+
RUBY_PLATFORM.include?('mingw')
|
68
|
+
return true
|
69
|
+
end
|
70
|
+
return false
|
71
|
+
end
|
72
|
+
|
73
|
+
# ========================================================================= #
|
74
|
+
# === LSCPU
|
75
|
+
#
|
76
|
+
# The `lscpu` command may fail, which is why it has to be put into
|
77
|
+
# a begin/rescue clause.
|
78
|
+
# ========================================================================= #
|
79
|
+
if is_on_windows?
|
80
|
+
LSCPU = nil
|
81
|
+
else
|
82
|
+
begin
|
83
|
+
LSCPU = `lscpu`.split("\n")
|
84
|
+
rescue Errno::ENOENT
|
85
|
+
puts 'No binary called lscpu could be found.'
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
89
|
+
# ========================================================================= #
|
90
|
+
# === CPUINFO
|
91
|
+
#
|
92
|
+
# We must first check whether the target location actually does happen
|
93
|
+
# to exist.
|
94
|
+
# ========================================================================= #
|
95
|
+
_ = CPUINFO_LOCATION
|
96
|
+
if File.exist? _
|
97
|
+
CPUINFO = File.read(_)
|
98
|
+
else
|
99
|
+
CPUINFO = nil
|
100
|
+
end
|
101
|
+
|
102
|
+
# ========================================================================= #
|
103
|
+
# === SPLITTED_CPUINFO
|
104
|
+
# ========================================================================= #
|
105
|
+
if CPUINFO
|
106
|
+
SPLITTED_CPUINFO = CPUINFO.split(N)
|
107
|
+
begin
|
108
|
+
LSPCI = `lspci`
|
109
|
+
rescue # Must rescue here because lspci might not be available.
|
110
|
+
LSPCI = nil
|
111
|
+
end
|
112
|
+
end
|
113
|
+
|
114
|
+
# ========================================================================= #
|
115
|
+
# === DATASET_FROM_PROC_MEMINFO
|
116
|
+
# ========================================================================= #
|
117
|
+
if File.exist? PROC_MEMINFO
|
118
|
+
DATASET_FROM_PROC_MEMINFO = File.readlines(PROC_MEMINFO)
|
119
|
+
_ = DATASET_FROM_PROC_MEMINFO.select {|entry|
|
120
|
+
entry.include? 'MemTotal'
|
121
|
+
}.first.strip.split(':').last.strip
|
122
|
+
# ======================================================================= #
|
123
|
+
# We discard all but the gigs for RAM.
|
124
|
+
# ======================================================================= #
|
125
|
+
_ = (_.gsub(/ kB/,'').to_i / 1024).to_s+ ' MB'
|
126
|
+
else
|
127
|
+
DATASET_FROM_PROC_MEMINFO = nil
|
128
|
+
end
|
129
|
+
|
130
|
+
# ========================================================================= #
|
131
|
+
# === RAM_AVAILABLE
|
132
|
+
# ========================================================================= #
|
133
|
+
RAM_AVAILABLE = _
|
134
|
+
|
135
|
+
if DATASET_FROM_PROC_MEMINFO
|
136
|
+
_ = DATASET_FROM_PROC_MEMINFO.select {|entry|
|
137
|
+
entry.include? 'MemFree'
|
138
|
+
}.first.strip.split(':').last.strip #.gsub(/ kB/,'').to_i / 1024).to_s+ ' MB'
|
139
|
+
# ======================================================================= #
|
140
|
+
# === RAM_AVAILABLE_FREE
|
141
|
+
# ======================================================================= #
|
142
|
+
RAM_AVAILABLE_FREE = kb_to_mb(_)
|
143
|
+
end
|
144
|
+
|
145
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# === HardwareInformation
|
6
|
+
#
|
7
|
+
# This class will show some information about the local computer system,
|
8
|
+
# e. g. hardware information, via colours.
|
9
|
+
# =========================================================================== #
|
10
|
+
# require 'hardware_information'
|
11
|
+
# =========================================================================== #
|
12
|
+
require 'hardware_information/version/version.rb'
|
13
|
+
require 'hardware_information/class/colours.rb'
|
14
|
+
require 'hardware_information/class/constants.rb'
|
15
|
+
require 'hardware_information/class/initialize.rb'
|
16
|
+
require 'hardware_information/class/make_line.rb'
|
17
|
+
require 'hardware_information/class/menu.rb'
|
18
|
+
require 'hardware_information/class/misc.rb'
|
19
|
+
require 'hardware_information/class/obtain.rb'
|
20
|
+
require 'hardware_information/class/reset.rb'
|
21
|
+
require 'hardware_information/class/run.rb'
|
22
|
+
|
23
|
+
class HardwareInformation # === HardwareInformation
|
24
|
+
|
25
|
+
end
|
26
|
+
|
27
|
+
if __FILE__ == $PROGRAM_NAME
|
28
|
+
_ = HardwareInformation.new(false)
|
29
|
+
# _.disable_colours
|
30
|
+
_.run
|
31
|
+
_.report_result
|
32
|
+
end # hardi
|
@@ -0,0 +1,24 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
class HardwareInformation
|
6
|
+
|
7
|
+
# ========================================================================= #
|
8
|
+
# === initialize
|
9
|
+
# ========================================================================= #
|
10
|
+
def initialize(
|
11
|
+
run_already = true
|
12
|
+
)
|
13
|
+
reset
|
14
|
+
case run_already
|
15
|
+
when :do_not_run_yet
|
16
|
+
run_already = false
|
17
|
+
end
|
18
|
+
set_run_already(
|
19
|
+
run_already
|
20
|
+
)
|
21
|
+
run if run_already
|
22
|
+
end
|
23
|
+
|
24
|
+
end
|
@@ -0,0 +1,55 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
class HardwareInformation
|
6
|
+
|
7
|
+
# ========================================================================= #
|
8
|
+
# === make_line
|
9
|
+
#
|
10
|
+
# The first argument to this method should be the title that will
|
11
|
+
# be displayed.
|
12
|
+
#
|
13
|
+
# The second argument should show the content towards that argument.
|
14
|
+
# ========================================================================= #
|
15
|
+
def make_line(
|
16
|
+
title, content
|
17
|
+
)
|
18
|
+
title = title.dup if title.frozen?
|
19
|
+
use_this_colour_for_change = bold_teal?
|
20
|
+
use_this_colour_to_revert = @default_colour # First a copy.
|
21
|
+
title << ': ' if @use_colon_as_delimiter
|
22
|
+
title = default_ljust(title)
|
23
|
+
content = default_rjust(content)
|
24
|
+
# ======================================================================= #
|
25
|
+
# === Handle blocks next
|
26
|
+
#
|
27
|
+
# The passed block can modify the variable called content. This
|
28
|
+
# will happen after the various padding-operations above.
|
29
|
+
# ======================================================================= #
|
30
|
+
if block_given?
|
31
|
+
yielded = yield
|
32
|
+
case yielded
|
33
|
+
when nil
|
34
|
+
# Pas through.
|
35
|
+
else # Else, use colours.
|
36
|
+
if use_colours?
|
37
|
+
content = Colours.send(yielded, content)
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
string = ''.dup
|
42
|
+
string << use_this_colour_for_change if use_colours?
|
43
|
+
string << title
|
44
|
+
string << use_this_colour_to_revert if use_colours?
|
45
|
+
string = string.ljust(40)
|
46
|
+
if content.is_a? Array
|
47
|
+
_ string
|
48
|
+
content.each {|line| _ " #{line}" }
|
49
|
+
else
|
50
|
+
string << content
|
51
|
+
_ string
|
52
|
+
end
|
53
|
+
end
|
54
|
+
|
55
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'hardware_information/class/menu.rb'
|
6
|
+
# =========================================================================== #
|
7
|
+
class HardwareInformation # === HardwareInformation
|
8
|
+
|
9
|
+
# ========================================================================= #
|
10
|
+
# === start_the_sinatra_interface
|
11
|
+
#
|
12
|
+
# To invoke this method, do:
|
13
|
+
#
|
14
|
+
# hardi --sinatra
|
15
|
+
#
|
16
|
+
# ========================================================================= #
|
17
|
+
def start_the_sinatra_interface
|
18
|
+
require 'hardware_information/www/my_hardware_for_sinatra.rb'
|
19
|
+
HardwareInformation::SinatraMyHardware.start_sinatra_interface
|
20
|
+
end
|
21
|
+
|
22
|
+
# ========================================================================= #
|
23
|
+
# === menu (menu tag)
|
24
|
+
#
|
25
|
+
# Commandline-arguments, e. g. ARGV, will be passed into this menu
|
26
|
+
# interface.
|
27
|
+
# ========================================================================= #
|
28
|
+
def menu(
|
29
|
+
i = nil
|
30
|
+
)
|
31
|
+
if i
|
32
|
+
if i.is_a? Array
|
33
|
+
i.each {|entry| menu(entry) }
|
34
|
+
else
|
35
|
+
case i # case tag
|
36
|
+
# =================================================================== #
|
37
|
+
# === hardi --sinatra
|
38
|
+
# =================================================================== #
|
39
|
+
when /^-?-?sinatra$/
|
40
|
+
start_the_sinatra_interface
|
41
|
+
# =================================================================== #
|
42
|
+
# === hardi --disable-colours
|
43
|
+
# =================================================================== #
|
44
|
+
when /^-?-?disable(-|_)?colou?rs$/,
|
45
|
+
/^-?-?no(-|_)?colou?rs$/
|
46
|
+
disable_colours
|
47
|
+
end
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
end
|