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.
- checksums.yaml +7 -0
- data/README.md +1061 -0
- data/bin/envi +7 -0
- data/bin/fast_envi +7 -0
- data/doc/README.gen +893 -0
- data/doc/TODO_FOR_THE_ENVIRONMENT_INFORMATION_PROJECT.md +54 -0
- data/environment_information.gemspec +130 -0
- data/lib/environment_information/base/base.rb +113 -0
- data/lib/environment_information/class/add.rb +186 -0
- data/lib/environment_information/class/colours.rb +283 -0
- data/lib/environment_information/class/constants.rb +35 -0
- data/lib/environment_information/class/environment_information.rb +51 -0
- data/lib/environment_information/class/help.rb +86 -0
- data/lib/environment_information/class/html.rb +78 -0
- data/lib/environment_information/class/initialize.rb +178 -0
- data/lib/environment_information/class/menu.rb +436 -0
- data/lib/environment_information/class/misc.rb +821 -0
- data/lib/environment_information/class/opn.rb +33 -0
- data/lib/environment_information/class/register_sigint.rb +20 -0
- data/lib/environment_information/class/reset.rb +213 -0
- data/lib/environment_information/class/ruby.rb +79 -0
- data/lib/environment_information/class/run.rb +61 -0
- data/lib/environment_information/class/show_display_and_report.rb +310 -0
- data/lib/environment_information/colours/colours.rb +150 -0
- data/lib/environment_information/colours/sfancy.rb +19 -0
- data/lib/environment_information/colours/simp.rb +19 -0
- data/lib/environment_information/constants/array_tracked_components.rb +207 -0
- data/lib/environment_information/constants/constants.rb +17 -0
- data/lib/environment_information/constants/encoding.rb +21 -0
- data/lib/environment_information/constants/error_line.rb +17 -0
- data/lib/environment_information/constants/file_constants.rb +102 -0
- data/lib/environment_information/constants/misc.rb +86 -0
- data/lib/environment_information/constants/namespace.rb +14 -0
- data/lib/environment_information/constants/newline.rb +16 -0
- data/lib/environment_information/constants/regex.rb +30 -0
- data/lib/environment_information/constants/temp_directory.rb +52 -0
- data/lib/environment_information/gui/gtk/bindings.rb +300 -0
- data/lib/environment_information/misc_components/README.md +3 -0
- data/lib/environment_information/misc_components/cflags.rb +36 -0
- data/lib/environment_information/misc_components/cpuinfo.rb +64 -0
- data/lib/environment_information/misc_components/operating_system.rb +54 -0
- data/lib/environment_information/misc_components/operating_system_bit_type.rb +42 -0
- data/lib/environment_information/misc_components/ram.rb +30 -0
- data/lib/environment_information/misc_components/rubygems_installation_directory.rb +54 -0
- data/lib/environment_information/misc_components/screen_resolution.rb +50 -0
- data/lib/environment_information/project/project.rb +27 -0
- data/lib/environment_information/queries/README.md +2 -0
- data/lib/environment_information/queries/complex_version.rb +263 -0
- data/lib/environment_information/queries/pkg_config.rb +125 -0
- data/lib/environment_information/queries/simple_version.rb +211 -0
- data/lib/environment_information/requires/require_asciitable.rb +15 -0
- data/lib/environment_information/requires/require_the_constants.rb +7 -0
- data/lib/environment_information/requires/require_the_environment_information_project.rb +23 -0
- data/lib/environment_information/requires/require_the_individual_misc_components.rb +30 -0
- data/lib/environment_information/requires/require_the_toplevel_methods.rb +22 -0
- data/lib/environment_information/toplevel_methods/autogenerate_all_relevant_methods.rb +152 -0
- data/lib/environment_information/toplevel_methods/cd.rb +16 -0
- data/lib/environment_information/toplevel_methods/e.rb +30 -0
- data/lib/environment_information/toplevel_methods/hash.rb +60 -0
- data/lib/environment_information/toplevel_methods/internet_is_available.rb +30 -0
- data/lib/environment_information/toplevel_methods/is_on_roebe.rb +16 -0
- data/lib/environment_information/toplevel_methods/menu.rb +90 -0
- data/lib/environment_information/toplevel_methods/misc.rb +264 -0
- data/lib/environment_information/toplevel_methods/n_subcommands.rb +31 -0
- data/lib/environment_information/toplevel_methods/prefix_to_use.rb +39 -0
- data/lib/environment_information/toplevel_methods/register_this_component_is_missing.rb +61 -0
- data/lib/environment_information/toplevel_methods/remote_url_of_this_program.rb +45 -0
- data/lib/environment_information/toplevel_methods/replay_from_the_stored_file.rb +84 -0
- data/lib/environment_information/toplevel_methods/return_pkgconfig_based_programs.rb +28 -0
- data/lib/environment_information/toplevel_methods/return_remote_gtk2_version.rb +54 -0
- data/lib/environment_information/toplevel_methods/return_simple_version_based_programs.rb +28 -0
- data/lib/environment_information/toplevel_methods/return_version_of_this_program.rb +186 -0
- data/lib/environment_information/toplevel_methods/show_all_available_components.rb +192 -0
- data/lib/environment_information/toplevel_methods/write_what_into.rb +24 -0
- data/lib/environment_information/version/version.rb +25 -0
- data/lib/environment_information/www/sinatra_interface.rb +213 -0
- data/lib/environment_information/www/webobject_interface.cgi +29 -0
- data/lib/environment_information/yaml/array_default_programs_on_linux.yml +14 -0
- data/lib/environment_information/yaml/array_lfs_core_programs.yml +35 -0
- data/lib/environment_information/yaml/array_science_cluster.yml +12 -0
- data/lib/environment_information/yaml/array_tracked_non_programs.yml +13 -0
- data/lib/environment_information/yaml/array_tracked_programs.yml +165 -0
- data/lib/environment_information/yaml/array_tracked_xorg_components.yml +34 -0
- data/lib/environment_information/yaml/query_to_use_for_the_individual_components.yml +215 -0
- data/lib/environment_information.rb +5 -0
- data/test/testing_environment_information.rb +26 -0
- data/test/testing_missing_components.rb +9 -0
- data/test/testing_prefix_for_the_environment_information_project.rb +20 -0
- 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
|