environment_information 1.4.124 → 1.5.5
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +91 -15
- data/doc/README.gen +42 -14
- data/doc/todo/TODO_FOR_THE_ENVIRONMENT_INFORMATION_PROJECT.md +16 -12
- data/lib/environment_information/base/base.rb +483 -99
- data/lib/environment_information/colours/colours.rb +92 -66
- data/lib/environment_information/commandline/commandline.rb +137 -0
- data/lib/environment_information/constants/constants.rb +372 -11
- data/lib/environment_information/project/project.rb +1 -1
- data/lib/environment_information/query/constants.rb +46 -0
- data/lib/environment_information/query/help.rb +88 -0
- data/lib/environment_information/query/menu.rb +487 -0
- data/lib/environment_information/query/misc.rb +2006 -0
- data/lib/environment_information/query/query.rb +245 -0
- data/lib/environment_information/query/reset.rb +202 -0
- data/lib/environment_information/query/run.rb +70 -0
- data/lib/environment_information/requires/require_the_environment_information_project.rb +2 -7
- data/lib/environment_information/requires/require_the_toplevel_methods.rb +1 -3
- data/lib/environment_information/toplevel_methods/toplevel_methods.rb +2258 -0
- data/lib/environment_information/version/version.rb +2 -2
- data/lib/environment_information/www/sinatra_interface.rb +20 -17
- data/lib/environment_information/www/webobject_interface.cgi +6 -7
- data/lib/environment_information/yaml/colours.yml +3 -3
- data/lib/environment_information/yaml/query_to_use_for_all_components.yml +284 -0
- data/lib/environment_information/yaml/{array_tracked_programs.yml → track_these_components.yml} +77 -11
- metadata +18 -60
- data/lib/environment_information/class/class.rb +0 -2580
- data/lib/environment_information/class/colours.rb +0 -282
- data/lib/environment_information/colours/sfancy.rb +0 -19
- data/lib/environment_information/colours/simp.rb +0 -19
- data/lib/environment_information/constants/array_tracked_components.rb +0 -210
- data/lib/environment_information/constants/encoding.rb +0 -21
- data/lib/environment_information/constants/error_line.rb +0 -17
- data/lib/environment_information/constants/file_constants.rb +0 -102
- data/lib/environment_information/constants/misc.rb +0 -86
- data/lib/environment_information/constants/namespace.rb +0 -14
- data/lib/environment_information/constants/newline.rb +0 -16
- data/lib/environment_information/constants/regex.rb +0 -30
- data/lib/environment_information/constants/temp_directory.rb +0 -52
- data/lib/environment_information/misc_components/README.md +0 -3
- data/lib/environment_information/misc_components/cflags.rb +0 -36
- data/lib/environment_information/misc_components/cpuinfo.rb +0 -64
- data/lib/environment_information/misc_components/operating_system.rb +0 -54
- data/lib/environment_information/misc_components/operating_system_bit_type.rb +0 -42
- data/lib/environment_information/misc_components/ram.rb +0 -30
- data/lib/environment_information/misc_components/rubygems_installation_directory.rb +0 -54
- data/lib/environment_information/misc_components/screen_resolution.rb +0 -50
- data/lib/environment_information/queries/README.md +0 -2
- data/lib/environment_information/queries/complex_version.rb +0 -273
- data/lib/environment_information/queries/pkg_config.rb +0 -125
- data/lib/environment_information/queries/simple_version.rb +0 -272
- data/lib/environment_information/requires/require_the_individual_misc_components.rb +0 -30
- data/lib/environment_information/toplevel_methods/autogenerate_all_relevant_methods.rb +0 -153
- data/lib/environment_information/toplevel_methods/cd.rb +0 -16
- data/lib/environment_information/toplevel_methods/e.rb +0 -43
- data/lib/environment_information/toplevel_methods/hash.rb +0 -65
- data/lib/environment_information/toplevel_methods/internet_is_available.rb +0 -30
- data/lib/environment_information/toplevel_methods/is_on_roebe.rb +0 -16
- data/lib/environment_information/toplevel_methods/menu.rb +0 -90
- data/lib/environment_information/toplevel_methods/misc.rb +0 -324
- data/lib/environment_information/toplevel_methods/n_subcommands.rb +0 -31
- data/lib/environment_information/toplevel_methods/prefix_to_use.rb +0 -39
- data/lib/environment_information/toplevel_methods/register_this_component_is_missing.rb +0 -61
- data/lib/environment_information/toplevel_methods/remote_url_of_this_program.rb +0 -45
- data/lib/environment_information/toplevel_methods/replay_from_the_stored_file.rb +0 -84
- data/lib/environment_information/toplevel_methods/return_alias_to.rb +0 -30
- data/lib/environment_information/toplevel_methods/return_pkgconfig_based_programs.rb +0 -28
- data/lib/environment_information/toplevel_methods/return_remote_gtk2_version.rb +0 -54
- data/lib/environment_information/toplevel_methods/return_simple_version_based_programs.rb +0 -28
- data/lib/environment_information/toplevel_methods/return_version_of_this_program.rb +0 -182
- data/lib/environment_information/toplevel_methods/show_all_available_components.rb +0 -192
- data/lib/environment_information/toplevel_methods/write_what_into.rb +0 -24
- data/lib/environment_information/yaml/array_default_programs_on_linux.yml +0 -15
- data/lib/environment_information/yaml/array_lfs_core_programs.yml +0 -37
- data/lib/environment_information/yaml/array_science_cluster.yml +0 -12
- data/lib/environment_information/yaml/array_tracked_non_programs.yml +0 -13
- data/lib/environment_information/yaml/array_tracked_xorg_components.yml +0 -37
- data/lib/environment_information/yaml/query_to_use_for_the_individual_components.yml +0 -284
@@ -1,86 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby -w
|
2
|
-
# Encoding: UTF-8
|
3
|
-
# frozen_string_literal: true
|
4
|
-
# =========================================================================== #
|
5
|
-
# require 'environment_information/constants/misc.rb'
|
6
|
-
# =========================================================================== #
|
7
|
-
module EnvironmentInformation
|
8
|
-
|
9
|
-
require 'environment_information/constants/encoding.rb'
|
10
|
-
require 'environment_information/constants/temp_directory.rb'
|
11
|
-
|
12
|
-
# ========================================================================= #
|
13
|
-
# === EnvironmentInformation::NOT_INSTALLED_OR_NOT_FOUND
|
14
|
-
# ========================================================================= #
|
15
|
-
NOT_INSTALLED_OR_NOT_FOUND = '[Not installed or not found.]'
|
16
|
-
|
17
|
-
# ========================================================================= #
|
18
|
-
# === EnvironmentInformation::COMMAND_NOT_FOUND
|
19
|
-
# ========================================================================= #
|
20
|
-
COMMAND_NOT_FOUND = 'command not found'
|
21
|
-
|
22
|
-
# ========================================================================= #
|
23
|
-
# === EnvironmentInformation::NOT_FOUND
|
24
|
-
# ========================================================================= #
|
25
|
-
NOT_FOUND = 'not found'
|
26
|
-
|
27
|
-
# ========================================================================= #
|
28
|
-
# === EnvironmentInformation::VERSION_STRING
|
29
|
-
# ========================================================================= #
|
30
|
-
VERSION_STRING = 'version'
|
31
|
-
|
32
|
-
# ========================================================================= #
|
33
|
-
# === EnvironmentInformation::NOT_FOUND_IN_PKG_CONFIG_SEARCH_PATH
|
34
|
-
#
|
35
|
-
# This constant is specifically for missing (or not found) .pc
|
36
|
-
# files.
|
37
|
-
# ========================================================================= #
|
38
|
-
NOT_FOUND_IN_PKG_CONFIG_SEARCH_PATH =
|
39
|
-
'as not found in the pkg-config search path'
|
40
|
-
|
41
|
-
# ========================================================================= #
|
42
|
-
# === EnvironmentInformation::THE_PROGRAM_WAS_NOT_FOUND
|
43
|
-
# ========================================================================= #
|
44
|
-
THE_PROGRAM_WAS_NOT_FOUND =
|
45
|
-
'[The program was not found.]'
|
46
|
-
|
47
|
-
# ========================================================================= #
|
48
|
-
# === EnvironmentInformation::PKGCONFIG_COMMAND_NOT_FOUND
|
49
|
-
#
|
50
|
-
# The constant that follows next is used to determine whether
|
51
|
-
# pkg-config could find a corresponding .pc file. If not then
|
52
|
-
# pkg-config will typically report a line such as this:
|
53
|
-
#
|
54
|
-
# Package libdr was not found in the pkg-config search path.
|
55
|
-
#
|
56
|
-
# We will include the last part of this string, as a generic
|
57
|
-
# message that can be used to indicate "this package could
|
58
|
-
# not be found on the given computer system at hand".
|
59
|
-
# ========================================================================= #
|
60
|
-
PKGCONFIG_COMMAND_NOT_FOUND =
|
61
|
-
' was not found in the pkg-config search path.'
|
62
|
-
|
63
|
-
# ========================================================================= #
|
64
|
-
# === EnvironmentInformation::NO_SUCH_FILE_OR_DIRECTORY
|
65
|
-
# ========================================================================= #
|
66
|
-
NO_SUCH_FILE_OR_DIRECTORY =
|
67
|
-
'No such file or directory'
|
68
|
-
|
69
|
-
# ========================================================================= #
|
70
|
-
# === TRY_TO_MAKE_USE_OF_THE_OPN_GEM_IF_IT_IS_AVAILABLE
|
71
|
-
#
|
72
|
-
# This gem is closely connected to the NAMESPACE constant, so it
|
73
|
-
# will also reside in this file here.
|
74
|
-
# ========================================================================= #
|
75
|
-
TRY_TO_MAKE_USE_OF_THE_OPN_GEM_IF_IT_IS_AVAILABLE = true
|
76
|
-
|
77
|
-
# ========================================================================= #
|
78
|
-
# === EnvironmentInformation::SAVE_FILE
|
79
|
-
#
|
80
|
-
# Where to save stuff to. This depends on a proper setting of the
|
81
|
-
# toplevel variable called @temp_directory.
|
82
|
-
# ========================================================================= #
|
83
|
-
SAVE_FILE =
|
84
|
-
"#{@temp_directory}EnvironmentInformation.md"
|
85
|
-
|
86
|
-
end
|
@@ -1,14 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby -w
|
2
|
-
# Encoding: UTF-8
|
3
|
-
# frozen_string_literal: true
|
4
|
-
# =========================================================================== #
|
5
|
-
# require 'environment_information/constants/namespace.rb'
|
6
|
-
# =========================================================================== #
|
7
|
-
module EnvironmentInformation
|
8
|
-
|
9
|
-
# ========================================================================= #
|
10
|
-
# === NAMESPACE
|
11
|
-
# ========================================================================= #
|
12
|
-
NAMESPACE = inspect
|
13
|
-
|
14
|
-
end
|
@@ -1,16 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby -w
|
2
|
-
# Encoding: UTF-8
|
3
|
-
# frozen_string_literal: true
|
4
|
-
# =========================================================================== #
|
5
|
-
# require 'environment_information/constants/newline.rb'
|
6
|
-
# =========================================================================== #
|
7
|
-
module EnvironmentInformation
|
8
|
-
|
9
|
-
# ========================================================================= #
|
10
|
-
# === EnvironmentInformation::N
|
11
|
-
#
|
12
|
-
# A newline constant to simplify our life.
|
13
|
-
# ========================================================================= #
|
14
|
-
N = "\n"
|
15
|
-
|
16
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby -w
|
2
|
-
# Encoding: UTF-8
|
3
|
-
# frozen_string_literal: true
|
4
|
-
# =========================================================================== #
|
5
|
-
# All regexes that relate to EnvironmentInformation project should be
|
6
|
-
# stored in this file here.
|
7
|
-
# =========================================================================== #
|
8
|
-
# require 'environment_information/constants/regex.rb'
|
9
|
-
# =========================================================================== #
|
10
|
-
module EnvironmentInformation
|
11
|
-
|
12
|
-
# ========================================================================= #
|
13
|
-
# === EnvironmentInformation::ARRAY_VERSION
|
14
|
-
# ========================================================================= #
|
15
|
-
ARRAY_VERSION = [
|
16
|
-
/^-?-?version\??$/i
|
17
|
-
]
|
18
|
-
|
19
|
-
# ========================================================================= #
|
20
|
-
# === EnvironmentInformation::ARRAY_COMPARE_PROGRAM_VERSIONS
|
21
|
-
# ========================================================================= #
|
22
|
-
ARRAY_COMPARE_PROGRAM_VERSIONS = [
|
23
|
-
/^-?-?compare(-|_)?to(-|_)?program(-|_)?versions$/i,
|
24
|
-
/^-?-?compare(-|_)?program(-|_)?versions$/i,
|
25
|
-
/^-?-?compare(-|_)?programs$/i,
|
26
|
-
/^-?-?compare$/i,
|
27
|
-
/^-?-?compare(-|_)?version$/i
|
28
|
-
]
|
29
|
-
|
30
|
-
end
|
@@ -1,52 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby -w
|
2
|
-
# Encoding: UTF-8
|
3
|
-
# frozen_string_literal: true
|
4
|
-
# =========================================================================== #
|
5
|
-
# require 'environment_information/constants/temp_directory.rb'
|
6
|
-
# =========================================================================== #
|
7
|
-
module EnvironmentInformation
|
8
|
-
|
9
|
-
# ========================================================================= #
|
10
|
-
# === EnvironmentInformation::TEMP_DIRECTORY
|
11
|
-
#
|
12
|
-
# This constant denotes into which directory files should be stored,
|
13
|
-
# e. g. autogenerated files from the EnvironmentInformation project.
|
14
|
-
#
|
15
|
-
# This constant MUST have a trailing '/' character.
|
16
|
-
#
|
17
|
-
# The environment variable called MY_TEMP_DIR can overrule all
|
18
|
-
# other guesses made here, but it is not always available,
|
19
|
-
# e. g. in a .cgi file such an environment variable may not
|
20
|
-
# be available.
|
21
|
-
# ========================================================================= #
|
22
|
-
if ENV.has_key? 'MY_TEMP_DIR'
|
23
|
-
TEMP_DIRECTORY = ENV['MY_TEMP_DIR'].to_s
|
24
|
-
elsif File.directory? '/home/Temp/' # ← My main directory.
|
25
|
-
TEMP_DIRECTORY = '/home/Temp/'
|
26
|
-
elsif File.directory? '/Depot/Temp/'
|
27
|
-
TEMP_DIRECTORY = '/Depot/Temp/'
|
28
|
-
else
|
29
|
-
TEMP_DIRECTORY = '/tmp/' # ← "Rescue" for most other users on linux.
|
30
|
-
end
|
31
|
-
|
32
|
-
# ========================================================================= #
|
33
|
-
# === @temp_directory
|
34
|
-
# ========================================================================= #
|
35
|
-
@temp_directory = TEMP_DIRECTORY
|
36
|
-
|
37
|
-
# ========================================================================= #
|
38
|
-
# === EnvironmentInformation.temp_directory?
|
39
|
-
#
|
40
|
-
# This method will refer to the temp-directory in use for this project.
|
41
|
-
#
|
42
|
-
# It is advised to make use of the method, rather than the
|
43
|
-
# TEMP_DIRECTORY constant, as that is more convenient in the
|
44
|
-
# long run.
|
45
|
-
# ========================================================================= #
|
46
|
-
def self.temp_directory?(
|
47
|
-
i = @temp_directory
|
48
|
-
)
|
49
|
-
i.squeeze('/').dup
|
50
|
-
end; self.instance_eval { alias temp_dir? temp_directory? } # === EnvironmentInformation.temp_dir?
|
51
|
-
|
52
|
-
end
|
@@ -1,36 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby -w
|
2
|
-
# Encoding: UTF-8
|
3
|
-
# frozen_string_literal: true
|
4
|
-
# =========================================================================== #
|
5
|
-
# require 'environment_information/misc_components/cflags.rb'
|
6
|
-
# EnvironmentInformation.cflags_in_use?
|
7
|
-
# =========================================================================== #
|
8
|
-
module EnvironmentInformation
|
9
|
-
|
10
|
-
# ========================================================================= #
|
11
|
-
# === EnvironmentInformation.cflags? (cflags tag)
|
12
|
-
#
|
13
|
-
# The following is equivalent to the value stored in the variable
|
14
|
-
# $CFLAGS, which on unix-like systems may be obtained by issuing
|
15
|
-
# the following command:
|
16
|
-
#
|
17
|
-
# echo $CFLAGS
|
18
|
-
#
|
19
|
-
# The output may be like this:
|
20
|
-
#
|
21
|
-
# -O2 -fPIC -fno-strict-overflow -Wno-error
|
22
|
-
#
|
23
|
-
# ========================================================================= #
|
24
|
-
def self.cflags?
|
25
|
-
version = ENV['CFLAGS'].to_s.strip
|
26
|
-
version = '<none>' if version.empty? # Display special status if it is empty.
|
27
|
-
version
|
28
|
-
end; self.instance_eval { alias cflags_in_use? cflags? } # === EnvironmentInformation.cflags_in_use?
|
29
|
-
self.instance_eval { alias return_version_of_cflags cflags? } # === EnvironmentInformation.return_version_of_cflags
|
30
|
-
self.instance_eval { alias cflags cflags? } # === EnvironmentInformation.cflags
|
31
|
-
|
32
|
-
end
|
33
|
-
|
34
|
-
if __FILE__ == $PROGRAM_NAME
|
35
|
-
puts EnvironmentInformation.cflags?
|
36
|
-
end
|
@@ -1,64 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby -w
|
2
|
-
# Encoding: UTF-8
|
3
|
-
# frozen_string_literal: true
|
4
|
-
# =========================================================================== #
|
5
|
-
# require 'environment_information/misc_components/cpuinfo.rb'
|
6
|
-
# EnvironmentInformation.cpuinfo?
|
7
|
-
# =========================================================================== #
|
8
|
-
module EnvironmentInformation
|
9
|
-
|
10
|
-
require 'environment_information/constants/newline.rb'
|
11
|
-
require 'environment_information/constants/error_line.rb'
|
12
|
-
|
13
|
-
# ========================================================================= #
|
14
|
-
# === EnvironmentInformation.cpuinfo? (cpuinfo tag)
|
15
|
-
#
|
16
|
-
# This method currently relies on /proc/cpuinfo, thus favouring
|
17
|
-
# Linux-based systems.
|
18
|
-
#
|
19
|
-
# The output will be similar to this:
|
20
|
-
#
|
21
|
-
# AMD A8-7600 Radeon R7, 10 Compute Cores 4C+6G, 4 cores
|
22
|
-
#
|
23
|
-
# It will become the display part of "CPU Model".
|
24
|
-
# ========================================================================= #
|
25
|
-
def self.cpuinfo?
|
26
|
-
result = '/proc/cpuinfo'
|
27
|
-
if File.exist? result
|
28
|
-
readlines = File.readlines(result)
|
29
|
-
_ = readlines.grep(/model name/).first.chomp
|
30
|
-
splitted = _.split(':')
|
31
|
-
_ = splitted[1].strip # => "model name\t: AMD Sempron(tm) 145 Processor"
|
32
|
-
# ===================================================================== #
|
33
|
-
# Next, add the amount of cores. We use "nproc" for this but "lscpu"
|
34
|
-
# also contains this information. The following regex could be used
|
35
|
-
# for lscpu:
|
36
|
-
#
|
37
|
-
# Core\(s\) per socket: (.+)
|
38
|
-
#
|
39
|
-
# Ok, we use lscpu for now.
|
40
|
-
# ===================================================================== #
|
41
|
-
n_cores = `nproc --all`.strip
|
42
|
-
case n_cores.to_s
|
43
|
-
when '1'
|
44
|
-
n_cores << ' core' # Singular.
|
45
|
-
else
|
46
|
-
n_cores << ' cores' # Plural then.
|
47
|
-
end
|
48
|
-
_ << ", #{n_cores}" unless n_cores.empty?
|
49
|
-
result = _
|
50
|
-
else
|
51
|
-
result = nil
|
52
|
-
end
|
53
|
-
result
|
54
|
-
end; self.instance_eval { alias append_operating_system_cpuinfo cpuinfo? } # === EnvironmentInformation.append_operating_system_cpuinfo
|
55
|
-
self.instance_eval { alias cpu_model cpuinfo? } # === EnvironmentInformation.cpu_model
|
56
|
-
self.instance_eval { alias cpu_model? cpuinfo? } # === EnvironmentInformation.cpu_model?
|
57
|
-
self.instance_eval { alias return_version_of_cpuinfo cpuinfo? } # === EnvironmentInformation.return_version_of_cpuinfo
|
58
|
-
self.instance_eval { alias cpuinfo cpuinfo? } # === EnvironmentInformation.cpuinfo
|
59
|
-
|
60
|
-
end
|
61
|
-
|
62
|
-
if __FILE__ == $PROGRAM_NAME
|
63
|
-
puts EnvironmentInformation.cpuinfo?
|
64
|
-
end
|
@@ -1,54 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby -w
|
2
|
-
# Encoding: UTF-8
|
3
|
-
# frozen_string_literal: true
|
4
|
-
# =========================================================================== #
|
5
|
-
# require 'environment_information/misc_components/operating_system.rb'
|
6
|
-
# =========================================================================== #
|
7
|
-
module EnvironmentInformation
|
8
|
-
|
9
|
-
require 'environment_information/constants/newline.rb'
|
10
|
-
require 'environment_information/constants/error_line.rb'
|
11
|
-
|
12
|
-
# ========================================================================= #
|
13
|
-
# === EnvironmentInformation.operating_system (os tag)
|
14
|
-
#
|
15
|
-
# This method is also known as "bit type".
|
16
|
-
#
|
17
|
-
# The return value of this method may be a String such as this one here:
|
18
|
-
#
|
19
|
-
# "GNU/Linux"
|
20
|
-
#
|
21
|
-
# This is then further modified a bit to drop the "GNU/" part
|
22
|
-
# specifically.
|
23
|
-
#
|
24
|
-
# ========================================================================= #
|
25
|
-
def self.operating_system
|
26
|
-
cmd = 'uname -mo'
|
27
|
-
result = `#{cmd}`.chomp
|
28
|
-
if result.start_with? 'GNU'
|
29
|
-
# ===================================================================== #
|
30
|
-
# The next part removes 'GNU/' specifically. It is a simpler name
|
31
|
-
# than "GNU Linux" and variants, just as "BSD" is simpler than
|
32
|
-
# e. g. "FreeBSD". You can reason that it may be "less accurate",
|
33
|
-
# but it makes the notification-part of this gem simpler.
|
34
|
-
# ===================================================================== #
|
35
|
-
result.sub!(/^GNU\//,'') # Experimental as of Sep 2019.
|
36
|
-
end
|
37
|
-
if result.include? ' '
|
38
|
-
result = result.split(' ').last
|
39
|
-
end
|
40
|
-
result
|
41
|
-
end; self.instance_eval { alias operating_system? operating_system } # === EnvironmentInformation.operating_system?
|
42
|
-
self.instance_eval { alias operating_system_information? operating_system } # === EnvironmentInformation.operating_system_information
|
43
|
-
self.instance_eval { alias add_operating_system_information operating_system } # === EnvironmentInformation.add_operating_system_information
|
44
|
-
self.instance_eval { alias append_operating_system_in_use operating_system } # === EnvironmentInformation.append_operating_system_in_use
|
45
|
-
self.instance_eval { alias add_os_information operating_system } # === EnvironmentInformation.add_os_information
|
46
|
-
self.instance_eval { alias operating_system_in_use? operating_system } # === EnvironmentInformation.operating_system_in_use?
|
47
|
-
self.instance_eval { alias return_version_of_operating_system operating_system } # === EnvironmentInformation.return_version_of_operating_system
|
48
|
-
self.instance_eval { alias return_version_of_operating_system_in_use operating_system } # === EnvironmentInformation.return_version_of_operating_system_in_use
|
49
|
-
|
50
|
-
end
|
51
|
-
|
52
|
-
if __FILE__ == $PROGRAM_NAME
|
53
|
-
puts EnvironmentInformation.operating_system
|
54
|
-
end # envi_operating_system
|
@@ -1,42 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby -w
|
2
|
-
# Encoding: UTF-8
|
3
|
-
# frozen_string_literal: true
|
4
|
-
# =========================================================================== #
|
5
|
-
# require 'environment_information/misc_components/operating_system.rb'
|
6
|
-
# =========================================================================== #
|
7
|
-
module EnvironmentInformation
|
8
|
-
|
9
|
-
require 'environment_information/constants/newline.rb'
|
10
|
-
require 'environment_information/constants/error_line.rb'
|
11
|
-
|
12
|
-
# ========================================================================= #
|
13
|
-
# === EnvironmentInformation.operating_system_bit_type_information (bit tag, bit type tag)
|
14
|
-
#
|
15
|
-
# This method will return the bit type in use, as a String,
|
16
|
-
# such as "x86_64" or "x86_64 (64 bit)" specifically. The
|
17
|
-
# reason why this method appends ' (64 bit)' is mostly so
|
18
|
-
# that the user can quickly see whether a computer is on
|
19
|
-
# 32 bit or on 64 bit.
|
20
|
-
# ========================================================================= #
|
21
|
-
def self.operating_system_bit_type_information
|
22
|
-
cmd = 'uname -m'
|
23
|
-
result = `#{cmd}`.chomp
|
24
|
-
result = result.split(' ')[-1] if result.include?(' ')
|
25
|
-
result = result.dup if result.frozen?
|
26
|
-
case result
|
27
|
-
when 'x86_64'
|
28
|
-
result << ' (64 bit)'
|
29
|
-
end
|
30
|
-
result
|
31
|
-
end; self.instance_eval { alias add_bit_type_information operating_system_bit_type_information } # === EnvironmentInformation.add_bit_type_information
|
32
|
-
self.instance_eval { alias add_operating_system_bit_type operating_system_bit_type_information } # === EnvironmentInformation.add_operating_system_bit_type
|
33
|
-
self.instance_eval { alias bit_type? operating_system_bit_type_information } # === EnvironmentInformation.bit_type?
|
34
|
-
self.instance_eval { alias return_version_of_operating_system_bit_type operating_system_bit_type_information } # === EnvironmentInformation.return_version_of_operating_system_bit_type
|
35
|
-
self.instance_eval { alias operating_system_bit_type? operating_system_bit_type_information } # === EnvironmentInformation.operating_system_bit_type?
|
36
|
-
self.instance_eval { alias operating_system_bit_type operating_system_bit_type_information } # === EnvironmentInformation.operating_system_bit_type
|
37
|
-
|
38
|
-
end
|
39
|
-
|
40
|
-
if __FILE__ == $PROGRAM_NAME
|
41
|
-
puts EnvironmentInformation.operating_system_bit_type_information
|
42
|
-
end
|
@@ -1,30 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby -w
|
2
|
-
# Encoding: UTF-8
|
3
|
-
# frozen_string_literal: true
|
4
|
-
# =========================================================================== #
|
5
|
-
# require 'environment_information/misc_components/ram.rb'
|
6
|
-
# ::EnvironmentInformation.ram?
|
7
|
-
# =========================================================================== #
|
8
|
-
module EnvironmentInformation
|
9
|
-
|
10
|
-
# ========================================================================= #
|
11
|
-
# === EnvironmentInformation.ram? (ram tag)
|
12
|
-
#
|
13
|
-
# This method will determine how much RAM the given computer host has.
|
14
|
-
#
|
15
|
-
# The result will be given in n MB.
|
16
|
-
# ========================================================================= #
|
17
|
-
def self.ram?
|
18
|
-
result_in_n_mb = `free -m 2>&1`.split("\n")[1]
|
19
|
-
if result_in_n_mb and result_in_n_mb.include?(' ')
|
20
|
-
result_in_n_mb = result_in_n_mb.split(' ')[1]
|
21
|
-
end
|
22
|
-
result_in_n_mb
|
23
|
-
end; self.instance_eval { alias return_version_of_ram ram? } # === EnvironmentInformation.return_version_of_ram
|
24
|
-
self.instance_eval { alias ram ram? } # === EnvironmentInformation.ram
|
25
|
-
|
26
|
-
end
|
27
|
-
|
28
|
-
if __FILE__ == $PROGRAM_NAME
|
29
|
-
puts EnvironmentInformation.ram?
|
30
|
-
end
|
@@ -1,54 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby -w
|
2
|
-
# Encoding: UTF-8
|
3
|
-
# frozen_string_literal: true
|
4
|
-
# =========================================================================== #
|
5
|
-
# require 'environment_information/misc_components/rubygems_installation_directory.rb'
|
6
|
-
# EnvironmentInformation.rubygems_installation_directory?
|
7
|
-
# =========================================================================== #
|
8
|
-
module EnvironmentInformation
|
9
|
-
|
10
|
-
require 'environment_information/constants/newline.rb'
|
11
|
-
require 'environment_information/constants/error_line.rb'
|
12
|
-
require 'environment_information/toplevel_methods/prefix_to_use.rb'
|
13
|
-
|
14
|
-
# ========================================================================= #
|
15
|
-
# === EnvironmentInformation.rubygems_installation_directory
|
16
|
-
#
|
17
|
-
# This method will return the path to the rubygems installation
|
18
|
-
# directory, if possible (if it exists).
|
19
|
-
#
|
20
|
-
# As this ought to be a directory, we will ensure that a trailing '/'
|
21
|
-
# character exists.
|
22
|
-
#
|
23
|
-
# This method may return a String such as "/root/.gem/".
|
24
|
-
# ========================================================================= #
|
25
|
-
def self.rubygems_installation_directory(
|
26
|
-
prefix_to_use = @prefix_to_use
|
27
|
-
)
|
28
|
-
result = `#{prefix_to_use}gem env #{ERROR_LINE}` # We need the 2>&1 to check if gem is available.
|
29
|
-
unless result.include? 'not found'
|
30
|
-
# ===================================================================== #
|
31
|
-
# Apply a regex next.
|
32
|
-
# ===================================================================== #
|
33
|
-
path_to_the_rubygem_directory = result.to_s.scan(
|
34
|
-
/INSTALLATION DIRECTORY: (.+)/ # Obtain the proper match here.
|
35
|
-
).flatten.first.to_s
|
36
|
-
if File.directory? path_to_the_rubygem_directory
|
37
|
-
path_to_the_rubygem_directory << '/'
|
38
|
-
end unless path_to_the_rubygem_directory.end_with? '/'
|
39
|
-
result = path_to_the_rubygem_directory
|
40
|
-
else
|
41
|
-
result = nil
|
42
|
-
end
|
43
|
-
result
|
44
|
-
end; self.instance_eval { alias add_rubygems_installation_directory_information rubygems_installation_directory } # === EnvironmentInformation.add_rubygems_installation_directory_information
|
45
|
-
self.instance_eval { alias add_rubygem_directory_information rubygems_installation_directory } # === EnvironmentInformation.add_rubygem_directory_information
|
46
|
-
self.instance_eval { alias append_rubygem_installation_directory rubygems_installation_directory } # === EnvironmentInformation.append_rubygem_installation_directory
|
47
|
-
self.instance_eval { alias return_version_of_rubygems_installation_directory rubygems_installation_directory } # === EnvironmentInformation.return_version_of_rubygems_installation_directory
|
48
|
-
self.instance_eval { alias rubygems_installation_directory? rubygems_installation_directory } # === EnvironmentInformation.rubygems_installation_directory?
|
49
|
-
|
50
|
-
end
|
51
|
-
|
52
|
-
if __FILE__ == $PROGRAM_NAME
|
53
|
-
puts EnvironmentInformation.rubygems_installation_directory
|
54
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
#!/usr/bin/ruby -w
|
2
|
-
# Encoding: UTF-8
|
3
|
-
# frozen_string_literal: true
|
4
|
-
# =========================================================================== #
|
5
|
-
# require 'environment_information/misc_components/screen_resolution.rb'
|
6
|
-
# EnvironmentInformation.screen_resolution?
|
7
|
-
# =========================================================================== #
|
8
|
-
module EnvironmentInformation
|
9
|
-
|
10
|
-
require 'environment_information/constants/newline.rb'
|
11
|
-
require 'environment_information/constants/error_line.rb'
|
12
|
-
|
13
|
-
# ========================================================================= #
|
14
|
-
# === EnvironmentInformation.screen_resolution (screen tag)
|
15
|
-
#
|
16
|
-
# This method will typically make use of xdpyinfo first, as it also
|
17
|
-
# works in a .cgi environment. For non-cgi environments, on linux,
|
18
|
-
# we could use xrandr, which is a bit more elegant.
|
19
|
-
#
|
20
|
-
# On success, the method here will return a String such as "1920x1080".
|
21
|
-
# ========================================================================= #
|
22
|
-
def self.screen_resolution
|
23
|
-
result = '(unknown)' # This is the default return-value, then.
|
24
|
-
# ======================================================================= #
|
25
|
-
# === Check for linux as host OS first
|
26
|
-
# ======================================================================= #
|
27
|
-
if RUBY_PLATFORM.downcase.include? 'linux'
|
28
|
-
# ================================================================= #
|
29
|
-
# We have to be careful as xdpyinfo may not be installed on the
|
30
|
-
# given computer system.
|
31
|
-
# ================================================================= #
|
32
|
-
resolution = `xdpyinfo #{ERROR_LINE}`.scan(/dimensions:.+$/).first # The error here may be: "xdpyinfo: unable to open display"
|
33
|
-
if resolution and resolution.include? ':'
|
34
|
-
result = resolution.split(':').last.strip.split('pixels').first.strip
|
35
|
-
end
|
36
|
-
# ======================================================================= #
|
37
|
-
# === Else simply assume to be on windows here
|
38
|
-
# ======================================================================= #
|
39
|
-
else
|
40
|
-
result = `wmic desktopmonitor get screenheight,screenwidth #{ERROR_LINE}`
|
41
|
-
end
|
42
|
-
result
|
43
|
-
end; self.instance_eval { alias screen_resolution? screen_resolution } # === EnvironmentInformation.screen_resolution?
|
44
|
-
self.instance_eval { alias return_version_of_screen_resolution screen_resolution } # === EnvironmentInformation.return_version_of_screen_resolution
|
45
|
-
|
46
|
-
end
|
47
|
-
|
48
|
-
if __FILE__ == $PROGRAM_NAME
|
49
|
-
puts EnvironmentInformation.screen_resolution
|
50
|
-
end
|