environment_information 1.4.29

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

Potentially problematic release.


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

Files changed (89) hide show
  1. checksums.yaml +7 -0
  2. data/README.md +1061 -0
  3. data/bin/envi +7 -0
  4. data/bin/fast_envi +7 -0
  5. data/doc/README.gen +893 -0
  6. data/doc/TODO_FOR_THE_ENVIRONMENT_INFORMATION_PROJECT.md +54 -0
  7. data/environment_information.gemspec +130 -0
  8. data/lib/environment_information/base/base.rb +113 -0
  9. data/lib/environment_information/class/add.rb +186 -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 +86 -0
  14. data/lib/environment_information/class/html.rb +78 -0
  15. data/lib/environment_information/class/initialize.rb +178 -0
  16. data/lib/environment_information/class/menu.rb +436 -0
  17. data/lib/environment_information/class/misc.rb +821 -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 +213 -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 +310 -0
  24. data/lib/environment_information/colours/colours.rb +150 -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 +207 -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/gtk/bindings.rb +300 -0
  38. data/lib/environment_information/misc_components/README.md +3 -0
  39. data/lib/environment_information/misc_components/cflags.rb +36 -0
  40. data/lib/environment_information/misc_components/cpuinfo.rb +64 -0
  41. data/lib/environment_information/misc_components/operating_system.rb +54 -0
  42. data/lib/environment_information/misc_components/operating_system_bit_type.rb +42 -0
  43. data/lib/environment_information/misc_components/ram.rb +30 -0
  44. data/lib/environment_information/misc_components/rubygems_installation_directory.rb +54 -0
  45. data/lib/environment_information/misc_components/screen_resolution.rb +50 -0
  46. data/lib/environment_information/project/project.rb +27 -0
  47. data/lib/environment_information/queries/README.md +2 -0
  48. data/lib/environment_information/queries/complex_version.rb +263 -0
  49. data/lib/environment_information/queries/pkg_config.rb +125 -0
  50. data/lib/environment_information/queries/simple_version.rb +211 -0
  51. data/lib/environment_information/requires/require_asciitable.rb +15 -0
  52. data/lib/environment_information/requires/require_the_constants.rb +7 -0
  53. data/lib/environment_information/requires/require_the_environment_information_project.rb +23 -0
  54. data/lib/environment_information/requires/require_the_individual_misc_components.rb +30 -0
  55. data/lib/environment_information/requires/require_the_toplevel_methods.rb +22 -0
  56. data/lib/environment_information/toplevel_methods/autogenerate_all_relevant_methods.rb +152 -0
  57. data/lib/environment_information/toplevel_methods/cd.rb +16 -0
  58. data/lib/environment_information/toplevel_methods/e.rb +30 -0
  59. data/lib/environment_information/toplevel_methods/hash.rb +60 -0
  60. data/lib/environment_information/toplevel_methods/internet_is_available.rb +30 -0
  61. data/lib/environment_information/toplevel_methods/is_on_roebe.rb +16 -0
  62. data/lib/environment_information/toplevel_methods/menu.rb +90 -0
  63. data/lib/environment_information/toplevel_methods/misc.rb +264 -0
  64. data/lib/environment_information/toplevel_methods/n_subcommands.rb +31 -0
  65. data/lib/environment_information/toplevel_methods/prefix_to_use.rb +39 -0
  66. data/lib/environment_information/toplevel_methods/register_this_component_is_missing.rb +61 -0
  67. data/lib/environment_information/toplevel_methods/remote_url_of_this_program.rb +45 -0
  68. data/lib/environment_information/toplevel_methods/replay_from_the_stored_file.rb +84 -0
  69. data/lib/environment_information/toplevel_methods/return_pkgconfig_based_programs.rb +28 -0
  70. data/lib/environment_information/toplevel_methods/return_remote_gtk2_version.rb +54 -0
  71. data/lib/environment_information/toplevel_methods/return_simple_version_based_programs.rb +28 -0
  72. data/lib/environment_information/toplevel_methods/return_version_of_this_program.rb +186 -0
  73. data/lib/environment_information/toplevel_methods/show_all_available_components.rb +192 -0
  74. data/lib/environment_information/toplevel_methods/write_what_into.rb +24 -0
  75. data/lib/environment_information/version/version.rb +25 -0
  76. data/lib/environment_information/www/sinatra_interface.rb +213 -0
  77. data/lib/environment_information/www/webobject_interface.cgi +29 -0
  78. data/lib/environment_information/yaml/array_default_programs_on_linux.yml +14 -0
  79. data/lib/environment_information/yaml/array_lfs_core_programs.yml +35 -0
  80. data/lib/environment_information/yaml/array_science_cluster.yml +12 -0
  81. data/lib/environment_information/yaml/array_tracked_non_programs.yml +13 -0
  82. data/lib/environment_information/yaml/array_tracked_programs.yml +165 -0
  83. data/lib/environment_information/yaml/array_tracked_xorg_components.yml +34 -0
  84. data/lib/environment_information/yaml/query_to_use_for_the_individual_components.yml +215 -0
  85. data/lib/environment_information.rb +5 -0
  86. data/test/testing_environment_information.rb +26 -0
  87. data/test/testing_missing_components.rb +9 -0
  88. data/test/testing_prefix_for_the_environment_information_project.rb +20 -0
  89. metadata +195 -0
@@ -0,0 +1,22 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'environment_information/requires/require_the_toplevel_methods.rb'
6
+ # =========================================================================== #
7
+ module EnvironmentInformation
8
+
9
+ require 'environment_information/project/project.rb'
10
+
11
+ # ========================================================================= #
12
+ # === EnvironmentInformation.require_the_toplevel_methods
13
+ # ========================================================================= #
14
+ def self.require_the_toplevel_methods
15
+ Dir["#{PROJECT_BASE_DIRECTORY}toplevel_methods/*.rb"].each {|this_file|
16
+ require "environment_information/toplevel_methods/#{File.basename(this_file)}"
17
+ }
18
+ end
19
+
20
+ require_the_toplevel_methods # And require them at once.
21
+
22
+ end
@@ -0,0 +1,152 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # Code in this file is tasked to autogenerate the relevant methods for use
6
+ # in the toplevel EnvironmentInformation namespace.
7
+ # =========================================================================== #
8
+ # require 'environment_information/toplevel_methods/autogenerate_all_relevant_methods.rb'
9
+ # =========================================================================== #
10
+ module EnvironmentInformation
11
+
12
+ require 'environment_information/constants/array_tracked_components.rb'
13
+ require 'environment_information/toplevel_methods/return_version_of_this_program.rb'
14
+
15
+ # ========================================================================= #
16
+ # === EnvironmentInformation.autogenerate_all_relevant_methods
17
+ #
18
+ # By default this method will scan for all tracked programs, and
19
+ # for the xorg-components.
20
+ # ========================================================================= #
21
+ def self.autogenerate_all_relevant_methods(
22
+ i = ARRAY_TRACKED_PROGRAMS+
23
+ ARRAY_XORG_COMPONENTS
24
+ )
25
+ i.flatten!
26
+ # ======================================================================= #
27
+ # Add some aliases which will be defined next.
28
+ # ======================================================================= #
29
+ hash_aliases = {
30
+ atk: :libatk, # === EnvironmentInformation.return_version_of_libatk
31
+ pcre2: :libpcre2, # === EnvironmentInformation.return_version_of_libpcre2
32
+ pcre: :libpcre, # === EnvironmentInformation.return_version_of_libpcre
33
+ zlib: :libzlib # === EnvironmentInformation.return_version_of_libzlib
34
+ }
35
+ # ======================================================================= #
36
+ # Iterate over our Array next:
37
+ # ======================================================================= #
38
+ i.each {|this_program|
39
+ case this_program
40
+ when :kde
41
+ this_program = :kde_frameworks
42
+ end
43
+ self.class.instance_eval {
44
+ # =================================================================== #
45
+ # To test this method, try to do:
46
+ #
47
+ # EnvironmentInformation.return_version_of_valgrind # => "3.15.0"
48
+ #
49
+ # =================================================================== #
50
+ this_method = "return_version_of_#{this_program}"
51
+ define_method(this_method) {
52
+ return_version_of_this_program(this_program)
53
+ }
54
+ if hash_aliases.has_key?(this_program)
55
+ # ================================================================= #
56
+ # To test this, try:
57
+ #
58
+ # EnvironmentInformation.return_version_of_libzlib
59
+ #
60
+ # ================================================================= #
61
+ use_this_as_the_alias_target = "return_version_of_#{hash_aliases[this_program]}"
62
+ define_method(use_this_as_the_alias_target) {
63
+ return_version_of_this_program(this_program)
64
+ }
65
+ end
66
+ }
67
+ }
68
+ end
69
+
70
+ autogenerate_all_relevant_methods # ← And call it at once.
71
+
72
+ # ========================================================================= #
73
+ # And add a few more aliases.
74
+ # ========================================================================= #
75
+ self.instance_eval { alias add_xz_information return_version_of_xz } # === EnvironmentInformation.add_xz_information
76
+ self.instance_eval { alias append_xz_version return_version_of_xz } # === EnvironmentInformation.append_xz_version
77
+ self.instance_eval { alias return_sed_version return_version_of_sed } # === EnvironmentInformation.return_sed_version
78
+ self.instance_eval { alias return_version_of_makeinfo return_version_of_texinfo } # === EnvironmentInformation.return_version_of_makeinfo
79
+ self.instance_eval { alias xfsprogs? return_version_of_xfsprogs } # === EnvironmentInformation.xfsprogs?
80
+ self.instance_eval { alias add_xfsprogs_information return_version_of_xfsprogs } # === EnvironmentInformation.add_xfsprogs_information
81
+ self.instance_eval { alias return_version_of_lftp? return_version_of_lftp } # === EnvironmentInformation.return_version_of_lftp?
82
+ self.instance_eval { alias add_llvm_information return_version_of_llvm } # === EnvironmentInformation.add_llvm_information
83
+ self.instance_eval { alias append_llvm_version return_version_of_llvm } # === EnvironmentInformation.append_llvm_version
84
+ self.instance_eval { alias add_mpc_information return_version_of_mpc } # === EnvironmentInformation.add_mpc_information
85
+ self.instance_eval { alias append_mpc_version return_version_of_mpc } # === EnvironmentInformation.append_mpc_version
86
+ self.instance_eval { alias try_to_show_re2c_version return_version_of_re2c } # === EnvironmentInformation.try_to_show_re2c_version
87
+ self.instance_eval { alias append_re2c_version return_version_of_re2c } # === EnvironmentInformation.append_nasm_version
88
+ self.instance_eval { alias return_version_of_pkg_config return_version_of_pkgconfig } # === EnvironmentInformation.return_version_of_pkg_config
89
+ self.instance_eval { alias add_readline_information return_version_of_readline } # === EnvironmentInformation.add_readline_information
90
+ self.instance_eval { alias append_readline_version return_version_of_readline } # === EnvironmentInformation.add_readline_information
91
+ self.instance_eval { alias return_version_of_liblibtasn1 return_version_of_libtasn1 } # === EnvironmentInformation.return_version_of_liblibtasn1
92
+ self.instance_eval { alias return_version_of_liblibtasn return_version_of_libtasn1 } # === EnvironmentInformation.return_version_of_liblibtasn
93
+ self.instance_eval { alias return_version_of_grep? return_version_of_grep } # === EnvironmentInformation.return_version_of_grep?
94
+ self.instance_eval { alias return_version_of_intltool? return_version_of_intltool } # === EnvironmentInformation.return_version_of_intltool?
95
+ self.instance_eval { alias glib? return_version_of_glib } # === EnvironmentInformation.glib?
96
+ self.instance_eval { alias add_gmp_information return_version_of_gmp } # === EnvironmentInformation.add_gmp_information
97
+ self.instance_eval { alias append_gmp_version return_version_of_gmp } # === EnvironmentInformation.append_gmp_version
98
+ self.instance_eval { alias kernel return_version_of_linux } # === EnvironmentInformation.kernel
99
+ self.instance_eval { alias linux_kernel return_version_of_linux } # === EnvironmentInformation.linux_kernel
100
+ self.instance_eval { alias linux_kernel? return_version_of_linux } # === EnvironmentInformation.linux_kernel?
101
+ self.instance_eval { alias return_information_about_the_component_called_linux_kernel return_version_of_linux } # === EnvironmentInformation.return_information_about_the_component_called_linux_kernel
102
+ self.instance_eval { alias append_kernel_version return_version_of_linux } # === EnvironmentInformation.append_kernel_version
103
+ self.instance_eval { alias add_kernel_information return_version_of_linux } # === EnvironmentInformation.add_kernel_information
104
+ self.instance_eval { alias return_version_of_linux_kernel return_version_of_linux } # === EnvironmentInformation.return_version_of_linux_kernel
105
+ self.instance_eval { alias return_version_of_linux_kernel? return_version_of_linux } # === EnvironmentInformation.return_version_of_linux_kernel?
106
+ self.instance_eval { alias boost? return_version_of_boost } # === EnvironmentInformation.boost?
107
+ self.instance_eval { alias return_version_of_boost? return_version_of_boost } # === EnvironmentInformation.return_version_of_boost?
108
+ self.instance_eval { alias return_version_of_find return_version_of_findutils } # === EnvironmentInformation.return_version_of_find
109
+ self.instance_eval { alias findutils? return_version_of_findutils } # === EnvironmentInformation.findutils?
110
+ self.instance_eval { alias awk? return_version_of_gawk } # === EnvironmentInformation.awk?
111
+ self.instance_eval { alias gawk? return_version_of_gawk } # === EnvironmentInformation.gawk?
112
+ self.instance_eval { alias return_information_about_the_component_called_awk return_version_of_gawk } # === EnvironmentInformation.return_information_about_the_component_called_awk
113
+ self.instance_eval { alias return_version_of_awk? return_version_of_gawk } # === EnvironmentInformation.return_version_of_awk?
114
+ self.instance_eval { alias return_version_of_awk return_version_of_gawk } # === EnvironmentInformation.return_version_of_awk
115
+ self.instance_eval { alias append_gdkpixbuf_version return_version_of_gdkpixbuf } # === EnvironmentInformation.append_gdkpixbuf_version
116
+ self.instance_eval { alias glibc? return_version_of_glibc } # === EnvironmentInformation.glibc?
117
+ self.instance_eval { alias glibc_version? return_version_of_glibc } # === EnvironmentInformation.glibc_version?
118
+ self.instance_eval { alias return_version_of_glibc? return_version_of_glibc } # === EnvironmentInformation.return_version_of_glibc?
119
+ self.instance_eval { alias ruby? return_version_of_ruby } # === EnvironmentInformation.ruby?
120
+ self.instance_eval { alias return_information_about_the_component_called_ruby return_version_of_ruby } # === EnvironmentInformation.return_information_about_the_component_called_ruby
121
+ self.instance_eval { alias return_version_of_ruby? return_version_of_ruby } # === EnvironmentInformation.return_version_of_ruby?
122
+ self.instance_eval { alias binutils? return_version_of_binutils } # === EnvironmentInformation.binutils?
123
+ self.instance_eval { alias return_version_of_binutils? return_version_of_binutils } # === EnvironmentInformation.return_version_of_binutils?
124
+ self.instance_eval { alias bison? return_version_of_bison } # === EnvironmentInformation.bison?
125
+ self.instance_eval { alias return_version_of_bison? return_version_of_bison } # === EnvironmentInformation.return_version_of_bison?
126
+ self.instance_eval { alias return_version_of_flex? return_version_of_flex } # === EnvironmentInformation.return_version_of_flex?
127
+ self.instance_eval { alias return_version_of_freetype2 return_version_of_freetype } # === EnvironmentInformation.return_version_of_freetype2
128
+ self.instance_eval { alias evince? return_version_of_evince } # === EnvironmentInformation.evince?
129
+ self.instance_eval { alias return_version_of_evince? return_version_of_evince } # === EnvironmentInformation.return_version_of_evince?
130
+ self.instance_eval { alias gcc? return_version_of_gcc } # === EnvironmentInformation.gcc?
131
+ self.instance_eval { alias return_information_about_the_component_called_gcc return_version_of_gcc } # === EnvironmentInformation.return_information_about_the_component_called_gcc
132
+ self.instance_eval { alias return_version_of_gcc? return_version_of_gcc } # === EnvironmentInformation.return_version_of_gcc?
133
+ self.instance_eval { alias return_version_of_R return_version_of_r } # === EnvironmentInformation.return_version_of_R
134
+ self.instance_eval { alias coreutils? return_version_of_coreutils } # === EnvironmentInformation.coreutils?
135
+ self.instance_eval { alias return_version_of_coreutils? return_version_of_coreutils } # === EnvironmentInformation.return_version_of_coreutils
136
+ self.instance_eval { alias return_version_of_diffutils? return_version_of_diffutils } # === EnvironmentInformation.return_version_of_diffutils?
137
+ self.instance_eval { alias return_version_of_libexempi return_version_of_exempi } # === EnvironmentInformation.return_version_of_libexempi
138
+ self.instance_eval { alias return_version_of_gpg return_version_of_gnupg } # === EnvironmentInformation.return_version_of_gpg
139
+ self.instance_eval { alias return_version_of_gnupg? return_version_of_gnupg } # === EnvironmentInformation.return_version_of_gnupg?
140
+ self.instance_eval { alias return_version_of_bzip return_version_of_bzip2 } # === EnvironmentInformation.return_version_of_bzip
141
+ self.instance_eval { alias return_version_of_llvm return_version_of_clang } # === EnvironmentInformation.return_version_of_llvm
142
+ self.instance_eval { alias return_clang_version return_version_of_clang } # === EnvironmentInformation.return_clang_version
143
+ self.instance_eval { alias kde5? return_version_of_kde_frameworks } # === EnvironmentInformation.kde5?
144
+ self.instance_eval { alias add_kde5_information return_version_of_kde_frameworks } # === EnvironmentInformation.add_kde5_information
145
+ self.instance_eval { alias add_kde_information return_version_of_kde_frameworks } # === EnvironmentInformation.add_kde_information
146
+ self.instance_eval { alias return_information_about_the_component_called_rubygems return_version_of_rubygems } # === EnvironmentInformation.return_information_about_the_component_called_rubygems
147
+ self.instance_eval { alias rubygems? return_version_of_rubygems } # === EnvironmentInformation.rubygems?
148
+ self.instance_eval { alias return_version_of_rubygems? return_version_of_rubygems } # === EnvironmentInformation.return_version_of_rubygems?
149
+ self.instance_eval { alias gtk3? return_version_of_gtk3 } # === EnvironmentInformation.gtk3?
150
+ self.instance_eval { alias gtk2? return_version_of_gtk2 } # === EnvironmentInformation.gtk2?
151
+
152
+ end
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'environment_information/toplevel_methods/cd.rb'
6
+ # =========================================================================== #
7
+ module EnvironmentInformation
8
+
9
+ # ========================================================================= #
10
+ # === EnvironmentInformation.cd (cd tag)
11
+ # ========================================================================= #
12
+ def self.cd(i)
13
+ Dir.chdir(i) if File.directory? i
14
+ end
15
+
16
+ end
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'environment_information/toplevel_methods/e.rb'
6
+ # EnvironmentInformation.e
7
+ # =========================================================================== #
8
+ module EnvironmentInformation
9
+
10
+ # ========================================================================= #
11
+ # === EnvironmentInformation.e
12
+ # ========================================================================= #
13
+ def self.e(i = '', hash = {})
14
+ if hash and
15
+ hash.has_key?(:display_everything_in_short_format) and
16
+ hash[:display_everything_in_short_format]
17
+ # ===================================================================== #
18
+ # Display the results in a single line in this case.
19
+ # ===================================================================== #
20
+ print "#{i}, "
21
+ else
22
+ puts i
23
+ end
24
+ end
25
+
26
+ end
27
+
28
+ if __FILE__ == $PROGRAM_NAME
29
+ EnvironmentInformation.e('Hello world!')
30
+ end
@@ -0,0 +1,60 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'environment_information/toplevel_methods/hash.rb'
6
+ # EnvironmentInformation.hash?
7
+ # =========================================================================== #
8
+ module EnvironmentInformation
9
+
10
+ require 'environment_information/toplevel_methods/register_this_component_is_missing.rb'
11
+
12
+ # ========================================================================= #
13
+ # === @hash_available_programs
14
+ #
15
+ # This hash stores the available programs.
16
+ #
17
+ # We need to use a Hash, rather than an Array, because we may save
18
+ # the result into a file, such as a yaml file. It is then more
19
+ # convenient to have the names of the program appear on the left
20
+ # side directoy, and the version on the right side.
21
+ #
22
+ # This Hash will hold the program name on the left side, and the
23
+ # program version on the right side. A nil value on the right
24
+ # side indicates that this program is NOT installed - which
25
+ # makes this the default value.
26
+ # ========================================================================= #
27
+ @hash_available_programs = {}
28
+
29
+ # ========================================================================= #
30
+ # === EnvironmentInformation.hash?
31
+ #
32
+ # This method will return the Hash of all available programs.
33
+ # ========================================================================= #
34
+ def self.hash?
35
+ @hash_available_programs
36
+ end; self.instance_eval { alias hash hash? } # === EnvironmentInformation.hash
37
+ self.instance_eval { alias dataset? hash? } # === EnvironmentInformation.dataset?
38
+
39
+ # ========================================================================= #
40
+ # === EnvironmentInformation.add_to_hash
41
+ # ========================================================================= #
42
+ def self.add_to_hash(a, b)
43
+ b.strip! if b.is_a? String
44
+ if b.nil?
45
+ ::EnvironmentInformation.register_this_component_is_missing(a)
46
+ end
47
+ @hash_available_programs[a] = b
48
+ end
49
+
50
+ # ========================================================================= #
51
+ # === EnvironmentInformation.clear_hash
52
+ #
53
+ # This method can be used to clear the main (toplevel) Hash.
54
+ # ========================================================================= #
55
+ def self.clear_hash
56
+ @hash_available_programs.clear
57
+ end; self.instance_eval { alias clear_toplevel_hash clear_hash } # === EnvironmentInformation.clear_toplevel_hash
58
+ self.instance_eval { alias clear_main_hash clear_hash } # === EnvironmentInformation.clear_main_hash
59
+
60
+ end
@@ -0,0 +1,30 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'environment_information/toplevel_methods/internet_is_available.rb'
6
+ # =========================================================================== #
7
+ module EnvironmentInformation
8
+
9
+ # ========================================================================= #
10
+ # === EnvironmentInformation.internet_is_available?
11
+ # ========================================================================= #
12
+ def self.internet_is_available?
13
+ require 'resolv'
14
+ dns_resolver = Resolv::DNS.new
15
+ begin
16
+ # ===================================================================== #
17
+ # The first domain name ever. Will probably not be removed.
18
+ # ===================================================================== #
19
+ dns_resolver.getaddress('symbolics.com')
20
+ return true
21
+ rescue Resolv::ResolvError => _error
22
+ return false
23
+ end
24
+ end
25
+
26
+ end
27
+
28
+ if __FILE__ == $PROGRAM_NAME
29
+ puts EnvironmentInformation.internet_is_available?
30
+ end
@@ -0,0 +1,16 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'environment_information/toplevel_methods/is_on_roebe.rb'
6
+ # =========================================================================== #
7
+ module EnvironmentInformation
8
+
9
+ # ========================================================================= #
10
+ # === EnvironmentInformation.is_on_roebe?
11
+ # ========================================================================= #
12
+ def self.is_on_roebe?
13
+ ENV['IS_ROEBE'].to_i == 1
14
+ end
15
+
16
+ end
@@ -0,0 +1,90 @@
1
+ #!/usr/bin/ruby -w
2
+ # Encoding: UTF-8
3
+ # frozen_string_literal: true
4
+ # =========================================================================== #
5
+ # require 'environment_information/toplevel_methods/menu.rb'
6
+ # =========================================================================== #
7
+ module EnvironmentInformation
8
+
9
+ require 'environment_information/toplevel_methods/e.rb'
10
+ require 'environment_information/version/version.rb'
11
+ require 'environment_information/colours/colours.rb'
12
+ require 'environment_information/colours/simp.rb'
13
+ require 'environment_information/constants/regex.rb'
14
+
15
+ # ========================================================================= #
16
+ # === EnvironmentInformation.menu
17
+ # ========================================================================= #
18
+ def self.menu(
19
+ i = ARGV
20
+ )
21
+ if i.is_a? Array
22
+ i.each {|entry| menu(entry) }
23
+ else
24
+ case i # case tag
25
+ # ===================================================================== #
26
+ # === envi --replay
27
+ #
28
+ # The replay-functionality can be used to display information
29
+ # quickly, by reading the dataset from a local file.
30
+ # ===================================================================== #
31
+ when /^-?-?replay$/i
32
+ require 'environment_information/toplevel_methods/replay_from_the_stored_file.rb'
33
+ replay_from_the_stored_file
34
+ # ===================================================================== #
35
+ # === envi --version?
36
+ # ===================================================================== #
37
+ when *ARRAY_VERSION
38
+ report_version
39
+ # ===================================================================== #
40
+ # === envi --compare
41
+ # ===================================================================== #
42
+ when *ARRAY_COMPARE_PROGRAM_VERSIONS
43
+ require 'environment_information/toplevel_methods/show_all_available_components.rb'
44
+ ::EnvironmentInformation.show_all_available_components(
45
+ ['--compare-program-versions']
46
+ )
47
+ # ===================================================================== #
48
+ # === envi --gui
49
+ # ===================================================================== #
50
+ when /^-?-?gui$/i,
51
+ /^-?-?gtk$/i,
52
+ /^-?-?start(-|_)?gtk$/i
53
+ start_gtk_component
54
+ else
55
+ require 'environment_information/toplevel_methods/misc.rb'
56
+ EnvironmentInformation.test
57
+ end
58
+ end
59
+ end
60
+
61
+ # ========================================================================= #
62
+ # === EnvironmentInformation.report_version
63
+ # ========================================================================= #
64
+ def self.report_version
65
+ e "#{rev}The version of the EnvironmentInformation project "\
66
+ "in use is: #{simp(VERSION)}#{rev}"
67
+ end
68
+
69
+ # ========================================================================= #
70
+ # === EnvironmentInformation.start_gtk_component
71
+ #
72
+ # We have to rescue the code so to notify the user what exactly
73
+ # may have failed.
74
+ # ========================================================================= #
75
+ def self.start_gtk_component
76
+ begin
77
+ this_file = 'environment_information/gui/gtk/bindings.rb'
78
+ require this_file
79
+ rescue LoadError => error
80
+ e "An error happened - file #{sfile(this_file)} could not be found."
81
+ pp error
82
+ end
83
+ ::EnvironmentInformation.run_gtk
84
+ end
85
+
86
+ end
87
+
88
+ if __FILE__ == $PROGRAM_NAME
89
+ EnvironmentInformation.menu(ARGV)
90
+ end # rb menu.rb --version