environment_information 1.4.89

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.

Potentially problematic release.


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

Files changed (94) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +1276 -0
  3. data/bin/envi +7 -0
  4. data/bin/fast_envi +7 -0
  5. data/doc/README.gen +1044 -0
  6. data/doc/todo/TODO_FOR_THE_ENVIRONMENT_INFORMATION_PROJECT.md +48 -0
  7. data/environment_information.gemspec +135 -0
  8. data/lib/environment_information/base/base.rb +159 -0
  9. data/lib/environment_information/class/add.rb +187 -0
  10. data/lib/environment_information/class/colours.rb +283 -0
  11. data/lib/environment_information/class/constants.rb +35 -0
  12. data/lib/environment_information/class/environment_information.rb +51 -0
  13. data/lib/environment_information/class/help.rb +90 -0
  14. data/lib/environment_information/class/html.rb +78 -0
  15. data/lib/environment_information/class/initialize.rb +177 -0
  16. data/lib/environment_information/class/menu.rb +465 -0
  17. data/lib/environment_information/class/misc.rb +897 -0
  18. data/lib/environment_information/class/opn.rb +33 -0
  19. data/lib/environment_information/class/register_sigint.rb +20 -0
  20. data/lib/environment_information/class/reset.rb +217 -0
  21. data/lib/environment_information/class/ruby.rb +79 -0
  22. data/lib/environment_information/class/run.rb +61 -0
  23. data/lib/environment_information/class/show_display_and_report.rb +355 -0
  24. data/lib/environment_information/colours/colours.rb +211 -0
  25. data/lib/environment_information/colours/sfancy.rb +19 -0
  26. data/lib/environment_information/colours/simp.rb +19 -0
  27. data/lib/environment_information/constants/array_tracked_components.rb +210 -0
  28. data/lib/environment_information/constants/constants.rb +17 -0
  29. data/lib/environment_information/constants/encoding.rb +21 -0
  30. data/lib/environment_information/constants/error_line.rb +17 -0
  31. data/lib/environment_information/constants/file_constants.rb +102 -0
  32. data/lib/environment_information/constants/misc.rb +86 -0
  33. data/lib/environment_information/constants/namespace.rb +14 -0
  34. data/lib/environment_information/constants/newline.rb +16 -0
  35. data/lib/environment_information/constants/regex.rb +30 -0
  36. data/lib/environment_information/constants/temp_directory.rb +52 -0
  37. data/lib/environment_information/gui/gtk2/environment_information.rb +35 -0
  38. data/lib/environment_information/gui/gtk3/environment_information.rb +34 -0
  39. data/lib/environment_information/gui/libui/environment_information.rb +74 -0
  40. data/lib/environment_information/gui/shared_code/environment_information_module.rb +409 -0
  41. data/lib/environment_information/misc_components/README.md +3 -0
  42. data/lib/environment_information/misc_components/cflags.rb +36 -0
  43. data/lib/environment_information/misc_components/cpuinfo.rb +64 -0
  44. data/lib/environment_information/misc_components/operating_system.rb +54 -0
  45. data/lib/environment_information/misc_components/operating_system_bit_type.rb +42 -0
  46. data/lib/environment_information/misc_components/ram.rb +30 -0
  47. data/lib/environment_information/misc_components/rubygems_installation_directory.rb +54 -0
  48. data/lib/environment_information/misc_components/screen_resolution.rb +50 -0
  49. data/lib/environment_information/project/project.rb +27 -0
  50. data/lib/environment_information/queries/README.md +2 -0
  51. data/lib/environment_information/queries/complex_version.rb +272 -0
  52. data/lib/environment_information/queries/pkg_config.rb +125 -0
  53. data/lib/environment_information/queries/simple_version.rb +217 -0
  54. data/lib/environment_information/requires/require_asciitable.rb +15 -0
  55. data/lib/environment_information/requires/require_the_constants.rb +7 -0
  56. data/lib/environment_information/requires/require_the_environment_information_project.rb +23 -0
  57. data/lib/environment_information/requires/require_the_individual_misc_components.rb +30 -0
  58. data/lib/environment_information/requires/require_the_toplevel_methods.rb +22 -0
  59. data/lib/environment_information/toplevel_methods/autogenerate_all_relevant_methods.rb +152 -0
  60. data/lib/environment_information/toplevel_methods/cd.rb +16 -0
  61. data/lib/environment_information/toplevel_methods/e.rb +43 -0
  62. data/lib/environment_information/toplevel_methods/hash.rb +60 -0
  63. data/lib/environment_information/toplevel_methods/internet_is_available.rb +30 -0
  64. data/lib/environment_information/toplevel_methods/is_on_roebe.rb +16 -0
  65. data/lib/environment_information/toplevel_methods/menu.rb +90 -0
  66. data/lib/environment_information/toplevel_methods/misc.rb +309 -0
  67. data/lib/environment_information/toplevel_methods/n_subcommands.rb +31 -0
  68. data/lib/environment_information/toplevel_methods/prefix_to_use.rb +39 -0
  69. data/lib/environment_information/toplevel_methods/register_this_component_is_missing.rb +61 -0
  70. data/lib/environment_information/toplevel_methods/remote_url_of_this_program.rb +45 -0
  71. data/lib/environment_information/toplevel_methods/replay_from_the_stored_file.rb +84 -0
  72. data/lib/environment_information/toplevel_methods/return_alias_to.rb +30 -0
  73. data/lib/environment_information/toplevel_methods/return_pkgconfig_based_programs.rb +28 -0
  74. data/lib/environment_information/toplevel_methods/return_remote_gtk2_version.rb +54 -0
  75. data/lib/environment_information/toplevel_methods/return_simple_version_based_programs.rb +28 -0
  76. data/lib/environment_information/toplevel_methods/return_version_of_this_program.rb +182 -0
  77. data/lib/environment_information/toplevel_methods/show_all_available_components.rb +192 -0
  78. data/lib/environment_information/toplevel_methods/write_what_into.rb +24 -0
  79. data/lib/environment_information/version/version.rb +25 -0
  80. data/lib/environment_information/www/sinatra_interface.rb +213 -0
  81. data/lib/environment_information/www/webobject_interface.cgi +29 -0
  82. data/lib/environment_information/yaml/array_default_programs_on_linux.yml +15 -0
  83. data/lib/environment_information/yaml/array_lfs_core_programs.yml +37 -0
  84. data/lib/environment_information/yaml/array_science_cluster.yml +12 -0
  85. data/lib/environment_information/yaml/array_tracked_non_programs.yml +13 -0
  86. data/lib/environment_information/yaml/array_tracked_programs.yml +207 -0
  87. data/lib/environment_information/yaml/array_tracked_xorg_components.yml +37 -0
  88. data/lib/environment_information/yaml/colours.yml +3 -0
  89. data/lib/environment_information/yaml/query_to_use_for_the_individual_components.yml +256 -0
  90. data/lib/environment_information.rb +5 -0
  91. data/test/testing_environment_information.rb +26 -0
  92. data/test/testing_missing_components.rb +9 -0
  93. data/test/testing_prefix_for_the_environment_information_project.rb +20 -0
  94. metadata +191 -0
@@ -0,0 +1,177 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # === EnvironmentInformation::EnvironmentInformation
6
+ #
7
+ # The primary purpose of this class is to provide information about
8
+ # the computer environment ruby is running on. Obviously ruby must
9
+ # be available in order for this class (this program) to work.
10
+ #
11
+ # By default, class EnvironmentInformation will run in
12
+ # "commandline mode", that is, it will output information
13
+ # onto the console/terminal.
14
+ #
15
+ # The dataset is of course also available internally, though, so you
16
+ # can query this information and display it e. g. in a traditional
17
+ # GUI or WWW setting, like for a webpage.
18
+ # =========================================================================== #
19
+ # A complete usage example for the main class follows next:
20
+ #
21
+ # require 'environment_information'
22
+ #
23
+ # _ = EnvironmentInformation::EnvironmentInformation.new(:do_not_run_yet)
24
+ # _.disable_colours
25
+ # _.be_silent
26
+ # _.run
27
+ # _.string
28
+ #
29
+ # =========================================================================== #
30
+ # require 'environment_information/class/initialize.rb'
31
+ # =========================================================================== #
32
+ require 'environment_information/base/base.rb'
33
+
34
+ module EnvironmentInformation
35
+
36
+ class EnvironmentInformation < ::EnvironmentInformation::Base # === EnvironmentInformation::EnvironmentInformation
37
+
38
+ require 'environment_information/class/run.rb'
39
+ # ========================================================================= #
40
+ # === initialize
41
+ # ========================================================================= #
42
+ def initialize(
43
+ commandline_arguments = nil,
44
+ run_already = true
45
+ )
46
+ register_sigint
47
+ reset
48
+ # ======================================================================= #
49
+ # Next, we handle special run-mode variants.
50
+ # ======================================================================= #
51
+ case run_already
52
+ when :do_show_everything
53
+ do_show_everything
54
+ run_already = true
55
+ end
56
+ # ======================================================================= #
57
+ # And set @run_already, so that menu() can overrule it lateron.
58
+ # ======================================================================= #
59
+ @run_already = run_already
60
+ set_commandline_arguments(
61
+ commandline_arguments
62
+ )
63
+ # ======================================================================= #
64
+ # === Handle blocks
65
+ #
66
+ # Next blocks will be handled. This must come after the reset() method.
67
+ # ======================================================================= #
68
+ if block_given?
69
+ yielded = yield
70
+ case yielded # case tag
71
+ # ===================================================================== #
72
+ # === :do_not_use_rbt
73
+ # ===================================================================== #
74
+ when :do_not_use_rbt
75
+ @may_we_try_to_use_rbt = false
76
+ # ===================================================================== #
77
+ # === :disable_colours
78
+ # ===================================================================== #
79
+ when :disable_colours
80
+ disable_colours
81
+ # ===================================================================== #
82
+ # === :disable_colours_and_do_not_store_into_a_local_file
83
+ # ===================================================================== #
84
+ when :disable_colours_and_do_not_store_into_a_local_file
85
+ disable_colours
86
+ do_not_save_anything
87
+ # ===================================================================== #
88
+ # === :do_not_run_yet
89
+ # ===================================================================== #
90
+ when :do_not_run_yet
91
+ @run_already = false
92
+ else
93
+ # =================================================================== #
94
+ # Handle Hashes given in the block.
95
+ # =================================================================== #
96
+ if yielded.is_a? Hash
97
+ # ================================================================= #
98
+ # === :use_n_tokens
99
+ # ================================================================= #
100
+ if yielded.has_key? :use_n_tokens
101
+ set_use_n_tokens(yielded.delete(:use_n_tokens))
102
+ # ================================================================= #
103
+ # === :n_tokens
104
+ # ================================================================= #
105
+ elsif yielded.has_key? :n_tokens
106
+ set_use_n_tokens(yielded.delete(:n_tokens))
107
+ end
108
+ # ================================================================= #
109
+ # === :use_colours
110
+ # ================================================================= #
111
+ if yielded.has_key? :use_colours
112
+ set_use_colours(yielded.delete(:use_colours))
113
+ end
114
+ # ================================================================= #
115
+ # === :be_silent
116
+ # ================================================================= #
117
+ if yielded.has_key? :be_silent
118
+ set_be_silent(yielded.delete(:be_silent))
119
+ end
120
+ # ================================================================= #
121
+ # === :show_ruby_stuff
122
+ # ================================================================= #
123
+ if yielded.has_key? :show_ruby_stuff
124
+ if yielded.delete(:show_ruby_stuff) == false
125
+ dont_show_ruby_stuff
126
+ end
127
+ end
128
+ end
129
+ end
130
+ end
131
+ # ======================================================================= #
132
+ # First, we will add the default programs on a linux computer. The
133
+ # later invocation to menu() can change this, but we also want to
134
+ # provide "useful defaults" for users to benefit from this gem.
135
+ # ======================================================================= #
136
+ add_the_default_programs_on_a_linux_computer
137
+ # ======================================================================= #
138
+ # Add the ruby components next. This must come before menu().
139
+ # ======================================================================= #
140
+ consider_adding_the_ruby_components
141
+ # ======================================================================= #
142
+ # Invoke menu() to query and honour the commandline arguments.
143
+ # ======================================================================= #
144
+ menu
145
+ run if @run_already
146
+ end
147
+
148
+ # ========================================================================= #
149
+ # === EnvironmentInformation::EnvironmentInformation[]
150
+ # ========================================================================= #
151
+ def self.[](i = ARGV, &block)
152
+ new(i, &block)
153
+ end
154
+
155
+ end
156
+
157
+ # =========================================================================== #
158
+ # === EnvironmentInformation.run_the_main_class
159
+ # =========================================================================== #
160
+ def self.run_the_main_class(i = ARGV, &block)
161
+ ::EnvironmentInformation::EnvironmentInformation.new(i, &block)
162
+ end; self.instance_eval { alias result run_the_main_class } # === EnvironmentInformation.result
163
+ self.instance_eval { alias show run_the_main_class } # === EnvironmentInformation.show
164
+ self.instance_eval { alias new run_the_main_class } # === EnvironmentInformation.new
165
+ self.instance_eval { alias [] run_the_main_class } # === EnvironmentInformation[]
166
+
167
+ # =========================================================================== #
168
+ # === EnvironmentInformation.environment_information?
169
+ #
170
+ # This method will return a very long string containing all
171
+ # information about the locally installed/available programs.
172
+ # =========================================================================== #
173
+ def self.environment_information?
174
+ ::EnvironmentInformation::EnvironmentInformation.new(:full_be_silent).stringified
175
+ end
176
+
177
+ end
@@ -0,0 +1,465 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'environment_information/class/menu.rb'
6
+ # =========================================================================== #
7
+ require 'environment_information/base/base.rb'
8
+
9
+ module EnvironmentInformation
10
+
11
+ class EnvironmentInformation < ::EnvironmentInformation::Base # === EnvironmentInformation::EnvironmentInformation
12
+
13
+ require 'environment_information/class/help.rb'
14
+ require 'environment_information/class/html.rb'
15
+ require 'environment_information/class/misc.rb'
16
+ require 'environment_information/class/ruby.rb'
17
+
18
+ # ========================================================================= #
19
+ # === menu (menu tag)
20
+ #
21
+ # This method constitutes the "menu" interface for class
22
+ # EnvironmentInformation. It usually deals with the
23
+ # commandline-given arguments stored in ARGV.
24
+ # ========================================================================= #
25
+ def menu(
26
+ i = @commandline_arguments
27
+ )
28
+ if i.is_a? Array
29
+ i.each {|entry| menu(entry) }
30
+ else
31
+ case i # case tag
32
+ # ===================================================================== #
33
+ # === envi --one-liner
34
+ #
35
+ # A more complex usage example may be this:
36
+ #
37
+ # envi --rall --oneliner
38
+ #
39
+ # ===================================================================== #
40
+ when /^-?-?one(-|_)?liner$/i # === envi --oneliner
41
+ @internal_hash[:use_one_line_to_show_the_result] = true # This is different to the short-format.
42
+ # ===================================================================== #
43
+ # === envi --short
44
+ # ===================================================================== #
45
+ when /^-?-?short$/i,
46
+ /^-?-?display(-|_)?short(-|_)?format$/i,
47
+ /^-?-?do(-|_)?display(-|_)?in(-|_)?a(-|_)?short(-|_)?format$/i
48
+ do_display_in_a_short_format
49
+ # ===================================================================== #
50
+ # === envi --sort-alphabetically
51
+ #
52
+ # This entry point can also be combined, such as in:
53
+ #
54
+ # envi --show-everything --sort-alphabetically
55
+ #
56
+ # ===================================================================== #
57
+ when /^-?-?sort(-|_)?alphabetically$/i,
58
+ /^-?-?sort$/i,
59
+ /^-?-?alphabetically$/i,
60
+ /^-?-?alphabet$/i
61
+ enable_sort_alphabetically
62
+ # ===================================================================== #
63
+ # === envi --use-colours?
64
+ # ===================================================================== #
65
+ when /^-?-?use(-|_)?colou?rs\??$/i
66
+ e 'Will colours be used? '+
67
+ ::EnvironmentInformation.verbose_truth(
68
+ ::EnvironmentInformation.use_colours?.to_s
69
+ )
70
+ do_not_run
71
+ @do_exit_the_program = true
72
+ # ===================================================================== #
73
+ # === :do_show_everything
74
+ #
75
+ # An alternative way to make use of this entry point is via:
76
+ #
77
+ # envi --do-show-everything
78
+ # envi --show-everything
79
+ #
80
+ # ===================================================================== #
81
+ when :do_show_everything,
82
+ :show_really_everything,
83
+ /^-?-?do(_|-)?show(_|-)?everything$/i,
84
+ /^-?-?show(-|_)?everything$/i,
85
+ /^-?-?show(-|_)?full(-|_)?information$/i,
86
+ /^-?-?everything$/i,
87
+ /^-?-?rall$/i,
88
+ 'ALL'
89
+ do_show_everything
90
+ @run_already = true
91
+ # ===================================================================== #
92
+ # === envi --kdeversions?
93
+ #
94
+ # Note that this variant depends on another gem, called "rbt", and
95
+ # the associated RBT namespace.
96
+ # ===================================================================== #
97
+ when /^-?-?kde(_|-)?versions\??$/i,
98
+ /^-?-?kde\??$/i
99
+ report_the_installed_KDE_software_suite
100
+ # ===================================================================== #
101
+ # === envi --registered-components?
102
+ # ===================================================================== #
103
+ when /^-?-?registered(_|-)?components\??$/i,
104
+ /^-?-?available\??$/i
105
+ do_not_run_already
106
+ show_the_registered_components
107
+ @do_exit_the_program = true
108
+ # ===================================================================== #
109
+ # === envi --additional=php
110
+ #
111
+ # This entry point allows us to show additional programs.
112
+ #
113
+ # Another usage example:
114
+ #
115
+ # envi --additional=php,python,perl
116
+ #
117
+ # ===================================================================== #
118
+ when /^-?-?additional=(.+)$/i,
119
+ /^-?-?add=(.+)$/i
120
+ _ = $1.to_s.dup
121
+ add(_)
122
+ # ===================================================================== #
123
+ # === envi --n_entries?
124
+ # ===================================================================== #
125
+ when /^-?-?n(_|-)?entries\??$/i,
126
+ /^-?-?n(_|-)?programs\??$/i # envi --nprograms?
127
+ show_n_registered_entries # === envi --n_entries
128
+ @do_exit_the_program = true
129
+ # ===================================================================== #
130
+ # === envi --use-these-programs=bash,binutils,bison,yacc,bzip2,coreutils,diff,find,gawk,gcc,grep,gzip,linux,make,m4,patch,perl,python,sed,tar,makeinfo,xz
131
+ # === envi --use-these-programs=:lfs
132
+ #
133
+ # This entry point can be used to display a certain subset of
134
+ # programs, at the user's discretion.
135
+ # ===================================================================== #
136
+ when /^-?-?use(-|_)?these(-|_)?programs=(.+)$/i # === $3
137
+ # =================================================================== #
138
+ # First clear (aka reset) the main dataset.
139
+ # =================================================================== #
140
+ clear_old_dataset
141
+ match = $3.to_s.dup
142
+ add(match)
143
+ # ===================================================================== #
144
+ # === envi --show-remote-url
145
+ #
146
+ # This entry point will also show the remote URL to the
147
+ # program at hand.
148
+ # ===================================================================== #
149
+ when /^-?-?show(_|-)?remote(_|-)?url$/i
150
+ do_report_the_remote_urls
151
+ # ===================================================================== #
152
+ # === envi --help
153
+ #
154
+ # This entry point will always show help-related information.
155
+ # ===================================================================== #
156
+ when /^-?-?help$/i
157
+ do_show_help
158
+ # ===================================================================== #
159
+ # === envi --really-all
160
+ #
161
+ # This entry point is for really showing everything.
162
+ # ===================================================================== #
163
+ when /^-?-?REALLY(_|-)?ALL$/i,
164
+ /^-?-?compare(_|-)?program(_|-)?version$/i,
165
+ /^-?-?compare(_|-)?to(_|-)?program(_|-)?versions$/i,
166
+ /^-?-?do(_|-)?compare(_|-)?program(_|-)?version$/i,
167
+ /^-?-?really(_|-)?everything$/i
168
+ clear_old_dataset
169
+ add_default_linux_programs
170
+ add_ruby_and_rubygems
171
+ do_show_almost_everything_excluding_the_default_linux_programs
172
+ do_compare_the_program_version
173
+ # ===================================================================== #
174
+ # === envi --no-save
175
+ #
176
+ # Skip saving into a local file through this entry point.
177
+ #
178
+ # Invocation example:
179
+ #
180
+ # envi --lfs --no-save
181
+ #
182
+ # ===================================================================== #
183
+ when /^-?-?no(_|-)?save$/i
184
+ do_not_save_anything
185
+ # ===================================================================== #
186
+ # === envi --os?
187
+ # ===================================================================== #
188
+ when /^-?-?OS\??$/i,
189
+ /^-?-?show(-|_)?only(-|_)?the(-|_)?operating(-|_)?system$/i
190
+ do_show_only_the_operating_system
191
+ show_no_ruby
192
+ # ===================================================================== #
193
+ # === envi --help
194
+ # ===================================================================== #
195
+ when /help/i
196
+ @show_help = true
197
+ # ===================================================================== #
198
+ # === envi --clear
199
+ #
200
+ # This entry point will simply clear the old dataset.
201
+ #
202
+ # This can be used to only display a few components, such as:
203
+ #
204
+ # envi --clear --python --ruby --perl
205
+ #
206
+ # ===================================================================== #
207
+ when /^-?-?clear$/i,
208
+ /^-?-?clear(_|-)?old(_|-)?dataset$/i
209
+ clear_old_dataset
210
+ # ===================================================================== #
211
+ # === envi --sinatra
212
+ # ===================================================================== #
213
+ when /^-?-?sinatra$/i,
214
+ /^-?-?www$/i
215
+ start_the_sinatra_interface
216
+ # ===================================================================== #
217
+ # === envi --open
218
+ # ===================================================================== #
219
+ when /^-?-?open$/i,
220
+ /^-?-?edit$/i
221
+ open_this_file_in_editor
222
+ # ===================================================================== #
223
+ # === envi --lfs
224
+ # ===================================================================== #
225
+ when /^-?-?lfs$/i,
226
+ /^-?-?lfs(_|-)?core(_|-)?programs$/i
227
+ clear_old_dataset
228
+ add(:lfs_core_programs)
229
+ # ===================================================================== #
230
+ # === envi openssl
231
+ # ===================================================================== #
232
+ when /^-?-?openssl$/,
233
+ 'ssl'
234
+ add(:openssl)
235
+ # ===================================================================== #
236
+ # === envi --science
237
+ # ===================================================================== #
238
+ when /^-?-?science$/
239
+ clear_old_dataset
240
+ add(:science_cluster)
241
+ # ===================================================================== #
242
+ # === envi --nocolours
243
+ #
244
+ # This entry point can be used to disable usage of colours.
245
+ # ===================================================================== #
246
+ when /^-?-?nocolours/,'2',
247
+ /^-?-?no(-|_)?colou?rs$/i,
248
+ /^-?-?nocol$/i,
249
+ /^-?-?disable(-|_)?colou?rs$/i, # === envi --really-all --disable-colours
250
+ :disable_colours
251
+ disable_colours
252
+ # ===================================================================== #
253
+ # === envi --version
254
+ # ===================================================================== #
255
+ when *ARRAY_VERSION
256
+ report_version
257
+ # ===================================================================== #
258
+ # === envi --gui
259
+ # ===================================================================== #
260
+ when /^-?-?gui$/i,
261
+ /^-?-?gtk$/i,
262
+ /^-?-?start(-|_)?gtk$/i
263
+ start_gtk_component
264
+ # ===================================================================== #
265
+ # === envi --replay
266
+ # ===================================================================== #
267
+ when /^-?-?replay$/i
268
+ require 'environment_information/toplevel_methods/replay_from_the_stored_file.rb'
269
+ ::EnvironmentInformation.replay_from_the_stored_file
270
+ # ===================================================================== #
271
+ # === envi --be_silent_no_colours
272
+ #
273
+ # Not sure why the following entry point exists, but I will retain it
274
+ # for the time being.
275
+ # ===================================================================== #
276
+ when /^-?-?be(_|-)?silent(_|-)?no(_|-)?colours$/
277
+ disable_colours
278
+ do_not_display_the_result
279
+ do_show_everything
280
+ # ===================================================================== #
281
+ # This entry point is mostly for internal use, e. g. to pass
282
+ # in Symbols to menu().
283
+ # ===================================================================== #
284
+ when :be_silent_no_colours_everything,
285
+ :be_silent_and_no_colours,
286
+ :be_silent_no_colours,
287
+ :full_be_silent
288
+ disable_colours
289
+ do_show_everything
290
+ do_not_display_the_result
291
+ # ===================================================================== #
292
+ # === envi --be_silent
293
+ # ===================================================================== #
294
+ when /^-?-?be(_|-)?silent$/i # === envi --be-silent
295
+ do_not_display_the_result
296
+ do_show_everything
297
+ # ===================================================================== #
298
+ # === envi --work-on-programs-directory-only
299
+ # ===================================================================== #
300
+ when /^-?-?work(-|_)?on(-|_)?programs(-|_)?directory(-|_)?only$/i,
301
+ /^-?-?work(-|_)?on(-|_)?the(-|_)?programs(-|_)?directory(-|_)?only$/i
302
+ work_on_the_programs_directory_only
303
+ # ===================================================================== #
304
+ # === envi --do-save
305
+ # ===================================================================== #
306
+ when /^save$/i,
307
+ /^-?-?do(_|-)?save$/i
308
+ @store_the_results_into_local_files = true
309
+ # ===================================================================== #
310
+ # === envi --asciitable
311
+ # ===================================================================== #
312
+ when /^-?-?asciitable$/i,
313
+ 'table','1'
314
+ use_ascii_table if ASCIITABLE_IS_AVAILABLE
315
+ # ===================================================================== #
316
+ # === envi --read-from-this-file=/Depot/j/display_these_programs.md
317
+ # === envi --file=/Depot/j/display_these_programs.md
318
+ # === envi --input-from=/Depot/j/display_these_programs.md
319
+ # ===================================================================== #
320
+ when /^-?-?read(-|_)?from(-|_)?this(-|_)?file=(.+)$/i, # <- And this has $4
321
+ /^-?-?file=(.+)$/i, # <- This has only $1
322
+ /^-?-?input(-|_)?from=(.+)$/i # <- This has $2
323
+ _ = $1.to_s.dup
324
+ _ = $2.to_s.dup if $2
325
+ _ = $4.to_s.dup if $4
326
+ clear_old_dataset
327
+ set_use_this_as_main_input(
328
+ load_dataset_from_this_file(_)
329
+ )
330
+ # ===================================================================== #
331
+ # === envi --no-yaml-file
332
+ # ===================================================================== #
333
+ when /^-?-?no(-|_)?yaml(-|_)?file$/i,
334
+ /^-?-?no(-|_)?local(-|_)?file$/i
335
+ @store_the_results_into_local_files = false
336
+ # ===================================================================== #
337
+ # === envi noruby
338
+ # ===================================================================== #
339
+ when /^-?-?noruby$/i,
340
+ 'show_no_ruby',
341
+ 'classic',
342
+ 'naked',
343
+ '3',
344
+ 'minimal'
345
+ show_no_ruby
346
+ # ===================================================================== #
347
+ # === envi --show-all
348
+ # ===================================================================== #
349
+ when /^-?-?show(-|_)?all$/i,
350
+ /^-?-?all$/i,
351
+ /^-?-?full$/i,
352
+ /^-?-?everything$/i, # === envi --everything
353
+ /^-?-?information$/i,
354
+ 'f',
355
+ '4'
356
+ do_show_everything # <- Just to be sure.
357
+ # ===================================================================== #
358
+ # === :be_silent
359
+ # ===================================================================== #
360
+ when /^-?-?be(_|-)?silent$/i,
361
+ :be_silent # We will be silent, but we will still show everything.
362
+ do_not_display_the_result
363
+ do_show_everything
364
+ # ===================================================================== #
365
+ # === envi --compare_programs
366
+ #
367
+ # This entry point allows us to compare the program versions with
368
+ # the one registered in RBT.
369
+ # ===================================================================== #
370
+ when *ARRAY_COMPARE_PROGRAM_VERSIONS
371
+ do_compare_the_program_version
372
+ # ===================================================================== #
373
+ # === envi --generate-html-file
374
+ #
375
+ # This entry point can be used to generate a local .html file.
376
+ # ===================================================================== #
377
+ when /^-?-?generate(-|_)?html(-|_)?file$/i,
378
+ /^-?-?html$/i # envi --HTML
379
+ @internal_hash[:generate_a_html_file] = true
380
+ set_runmode_html # Set it here again, just in case.
381
+ do_show_everything
382
+ # ===================================================================== #
383
+ # === envi --show-components?
384
+ # ===================================================================== #
385
+ when /^-?-?show(-|_)?components\??$/i
386
+ e "#{true_rev}The following components will be shown on a default run:"
387
+ e
388
+ show_these_components?.each {|this_component|
389
+ if this_component.is_a? Array
390
+ this_component = this_component.first
391
+ end
392
+ e " - #{steelblue(this_component)}#{true_rev}"
393
+ }
394
+ e
395
+ exit
396
+ # ===================================================================== #
397
+ # === :do_not_run_yet
398
+ #
399
+ # Invocation example:
400
+ #
401
+ # envi --do-not-run-yet
402
+ #
403
+ # ===================================================================== #
404
+ when /^-?-?-do(-|_)?not(-|_)?run(-|_)?yet$/i, # === envi --do-not-run-yet
405
+ :do_not_run_yet,
406
+ :dont_run_yet,
407
+ :default # This is the default variant.
408
+ @run_already = false
409
+ # ===================================================================== #
410
+ # === envi --pkgconfig
411
+ #
412
+ # Show all pkgconfig entries - but only these.
413
+ # ===================================================================== #
414
+ when /^-?-?pkg(-|_)?config$/i
415
+ clear_old_dataset
416
+ add(:pkgconfig_entries)
417
+ # ===================================================================== #
418
+ # === envi --xorg-components
419
+ #
420
+ # This entry point is for when the user only wants to show the
421
+ # xorg-components on the local computer system.
422
+ # ===================================================================== #
423
+ when /^-?-?xorg(_|-)?components$/i,
424
+ /^-?-?xorg$/i,
425
+ /^-?-?show(_|-)?xorg(_|-)?components$/i
426
+ do_show_only_the_xorg_components
427
+ else # else tag
428
+ # =================================================================== #
429
+ # It is better to report that the given commandline-input as
430
+ # not found, so this will be reported. Before we can do so, we
431
+ # will first check whether the user wanted to pass some
432
+ # existing/registered component nonetheless.
433
+ #
434
+ # This clause can be checked via something like this:
435
+ #
436
+ # envi --bash
437
+ # envi --brotli
438
+ #
439
+ # =================================================================== #
440
+ if is_a_registered_component?(i.delete('-'))
441
+ # ================================================================= #
442
+ # The next line has been added in August 2022. Not sure if we
443
+ # retain it or not - either way the future will show.
444
+ # ================================================================= #
445
+ @array_report_these_programs.clear # Clear the old result first.
446
+ do_not_store_anything
447
+ add(
448
+ i.delete('-')
449
+ )
450
+ else
451
+ # ================================================================= #
452
+ # Only enter the report-section if we do NOT want to exit early.
453
+ # ================================================================= #
454
+ do_show_help if show_help?
455
+ # Or:
456
+ # e 'Unhandled command input (in file environment_information/class/menu.rb): '
457
+ # e
458
+ # e " #{sfancy(i)}"
459
+ # e
460
+ end
461
+ end
462
+ end
463
+ end
464
+
465
+ end; end