lib/carioca/services/toolbox.rb in carioca-2.1.4 vs lib/carioca/services/toolbox.rb in carioca-2.1.5
- old
+ new
@@ -1,104 +1,103 @@
-# coding: utf-8
+# frozen_string_literal: true
# base Carioca namespace
module Carioca
-
- module Services
-
- # Exiter namespace
- class Toolbox
-
- def self.describe
- result = {}
- self.methods(false).each do |meth|
- next if meth == :describe
- result[meth] = self.send meth, **{describe: true}
- end
- return result
- end
+ module Services
+ # Exiter namespace
+ class Toolbox
+ def self.describe
+ result = {}
+ methods(false).each do |meth|
+ next if meth == :describe
- # return the 'root' name
- # @return [String] name
- def self.user_root(description: "Get the local system root username ", describe: false)
- return description if describe
- return Etc.getpwuid(0).name
- end
-
- # return the 'root' group name : root or wheel
- # @return [String] name
- def self.group_root(description: "Get the local system root groupname ", describe: false)
- return description if describe
- return Etc.getgrgid(0).name
- end
-
- # facility for retreiving PID from process query
- # @option [String] :pattern a regexp to search
- # @option [Array] :patterns an array of regexp to search
- # @option [Bool] :full flag to retrieve all process data not only PID
- # @return [String|Array] PID or data structure
- def self.get_processes(patterns: [], pattern: nil, full: false, description: "Get the list of running processus", describe: false)
- return description if describe
- patterns << pattern if pattern
- res = ::PS.get_all_processes
- patterns.each do |item|
- res = res.find_processes item
- end
- if full then
- return res
+ result[meth] = send meth, describe: true
+ end
+ result
+ end
+
+ # return the 'root' name
+ # @return [String] name
+ def self.user_root(description: 'Get the local system root username ', describe: false)
+ return description if describe
+
+ Etc.getpwuid(0).name
+ end
+
+ # return the 'root' group name : root or wheel
+ # @return [String] name
+ def self.group_root(description: 'Get the local system root groupname ', describe: false)
+ return description if describe
+
+ Etc.getgrgid(0).name
+ end
+
+ # facility for retreiving PID from process query
+ # @option [String] :pattern a regexp to search
+ # @option [Array] :patterns an array of regexp to search
+ # @option [Bool] :full flag to retrieve all process data not only PID
+ # @return [String|Array] PID or data structure
+ def self.get_processes(patterns: [], pattern: nil, full: false, description: 'Get the list of running processus', describe: false)
+ return description if describe
+
+ patterns << pattern if pattern
+ res = ::PS.get_all_processes
+ patterns.each do |item|
+ res = res.find_processes item
+ end
+ if full
+ res
+ else
+ res.pick_attr('PID')
+ end
+ end
+
+ # facility to find a file in gem path
+ # @param [String] _gem a Gem name
+ # @param [String] _file a file relative path in the gem
+ # @return [String] the path of the file, if found.
+ # @return [False] if not found
+ def self.search_file_in_gem(gem: nil, file: nil, description: 'Retrieve absolute path of a file in a specific gem', describe: false)
+ return description if describe
+
+ if Gem::Specification.respond_to?(:find_by_name)
+ begin
+ spec = Gem::Specification.find_by_name(gem)
+ rescue LoadError
+ spec = nil
+ end
+ else
+ spec = Gem.searcher.find(gem)
+ end
+ if spec
+ res = if Gem::Specification.respond_to?(:find_by_name)
+ spec.lib_dirs_glob.split('/')
else
- return res.pick_attr('PID')
+ Gem.searcher.lib_dirs_for(spec).split('/')
end
- end
-
-
- # facility to find a file in gem path
- # @param [String] _gem a Gem name
- # @param [String] _file a file relative path in the gem
- # @return [String] the path of the file, if found.
- # @return [False] if not found
- def self.search_file_in_gem(_gem=nil,_file=nil, description: "Retrieve absolute path of a file in a specific gem", describe: false)
- return description if describe
- if Gem::Specification.respond_to?(:find_by_name)
- begin
- spec = Gem::Specification.find_by_name(_gem)
- rescue LoadError
- spec = nil
- end
- else
- spec = Gem.searcher.find(_gem)
- end
- if spec then
- if Gem::Specification.respond_to?(:find_by_name)
- res = spec.lib_dirs_glob.split('/')
- else
- res = Gem.searcher.lib_dirs_for(spec).split('/')
- end
- res.pop
- services_path = res.join('/').concat("/#{_file}")
- return services_path if File::exist?(services_path)
- return false
- else
- return false
- end
- end
-
-
-
- # facility to verifying if the active process run as root
- # @return [Bool] status
- def self.is_root?(description: "Verify if active current processus is running as root", describe: false)
- return description if describe
- return Process.uid == 0
- end
+ res.pop
+ services_path = res.join('/').concat("/#{file}")
+ return services_path if File.exist?(services_path)
- # check if unicode must be used with term ENV
- # @return [Boolean]
- def self.check_unicode_term(description: "Check if terminal support unicode", describe: false)
- return description if describe
- return false unless ENV.include? "TERM"
- return (ENV.values_at("LC_ALL","LC_CTYPE","LANG").compact.include?("UTF-8") and ENV.values_at('TERM').include? "xterm")
- end
-
end
+ false
+ end
+
+ # facility to verifying if the active process run as root
+ # @return [Bool] status
+ def self.root?(description: 'Verify if active current processus is running as root', describe: false)
+ return description if describe
+
+ Process.uid.zero?
+ end
+
+ # check if unicode must be used with term ENV
+ # @return [Boolean]
+ def self.check_unicode_term(description: 'Check if terminal support unicode', describe: false)
+ return description if describe
+ return false unless ENV.include? 'TERM'
+
+ (ENV.values_at('LC_ALL', 'LC_CTYPE', 'LANG').compact.include?('UTF-8') and ENV.values_at('TERM').include? 'xterm')
+ end
end
+ end
end