From 8047b8a4c89a1ef69af2b5366f4421f77c9a77fe Mon Sep 17 00:00:00 2001 From: Jeffrey Clark Date: Sun, 4 Aug 2024 16:07:45 +0000 Subject: [PATCH] fix all rubocops for ruby >= 2.7 --- lib/vanagon/cli/build.rb | 2 +- lib/vanagon/cli/build_host_info.rb | 2 +- lib/vanagon/cli/build_requirements.rb | 7 ++--- lib/vanagon/cli/completion.rb | 2 +- lib/vanagon/cli/dependencies.rb | 12 ++++---- lib/vanagon/cli/inspect.rb | 2 +- lib/vanagon/cli/list.rb | 2 +- lib/vanagon/cli/render.rb | 2 +- lib/vanagon/cli/ship.rb | 2 +- lib/vanagon/cli/sign.rb | 2 +- lib/vanagon/common/user.rb | 8 +++--- lib/vanagon/component.rb | 40 +++++++++++++-------------- lib/vanagon/engine/docker.rb | 10 +++---- lib/vanagon/logger.rb | 2 +- lib/vanagon/platform/deb.rb | 2 +- lib/vanagon/platform/dsl.rb | 6 ++-- lib/vanagon/platform/osx.rb | 2 +- lib/vanagon/platform/rpm.rb | 2 +- lib/vanagon/platform/rpm/aix.rb | 2 +- lib/vanagon/platform/rpm/eos.rb | 4 +-- lib/vanagon/platform/solaris_10.rb | 2 +- lib/vanagon/platform/solaris_11.rb | 2 +- lib/vanagon/platform/windows.rb | 2 +- lib/vanagon/project.rb | 7 +---- lib/vanagon/utilities.rb | 12 ++++---- 25 files changed, 62 insertions(+), 76 deletions(-) diff --git a/lib/vanagon/cli/build.rb b/lib/vanagon/cli/build.rb index 3197dbcf5..69c3f1ee1 100644 --- a/lib/vanagon/cli/build.rb +++ b/lib/vanagon/cli/build.rb @@ -71,7 +71,7 @@ def options_translate(docopt_options) '' => :platforms, '' => :targets } - return docopt_options.map { |k, v| [translations[k], v] }.to_h + return docopt_options.transform_keys { |k| translations[k] } end def options_validate(options) diff --git a/lib/vanagon/cli/build_host_info.rb b/lib/vanagon/cli/build_host_info.rb index c49745f11..02eb731f3 100644 --- a/lib/vanagon/cli/build_host_info.rb +++ b/lib/vanagon/cli/build_host_info.rb @@ -51,7 +51,7 @@ def options_translate(docopt_options) '' => :platforms, '' => :targets } - return docopt_options.map { |k, v| [translations[k], v] }.to_h + return docopt_options.transform_keys { |k| translations[k] } end end end diff --git a/lib/vanagon/cli/build_requirements.rb b/lib/vanagon/cli/build_requirements.rb index 9fa4b2e77..419302aa9 100644 --- a/lib/vanagon/cli/build_requirements.rb +++ b/lib/vanagon/cli/build_requirements.rb @@ -39,9 +39,8 @@ def run(options) # rubocop:disable Metrics/AbcSize components = driver.project.components component_names = components.map(&:name) - build_requirements = [] - components.each do |component| - build_requirements << component.build_requires.reject do |requirement| + build_requirements = components.map do |component| + component.build_requires.reject do |requirement| # only include external requirements: i.e. those that do not match # other components in the project component_names.include?(requirement) @@ -61,7 +60,7 @@ def options_translate(docopt_options) '' => :project_name, '' => :platform, } - return docopt_options.map { |k, v| [translations[k], v] }.to_h + return docopt_options.transform_keys { |k| translations[k] } end end end diff --git a/lib/vanagon/cli/completion.rb b/lib/vanagon/cli/completion.rb index 8d291b56f..a6fad6218 100644 --- a/lib/vanagon/cli/completion.rb +++ b/lib/vanagon/cli/completion.rb @@ -37,7 +37,7 @@ def options_translate(docopt_options) translations = { '--shell' => :shell, } - return docopt_options.map { |k, v| [translations[k], v] }.to_h + return docopt_options.transform_keys { |k| translations[k] } end end end diff --git a/lib/vanagon/cli/dependencies.rb b/lib/vanagon/cli/dependencies.rb index b0cdb99ae..7cf054b7b 100644 --- a/lib/vanagon/cli/dependencies.rb +++ b/lib/vanagon/cli/dependencies.rb @@ -35,12 +35,10 @@ def run(options) projects.each do |project| platforms.each do |platform| - begin - artifact = Vanagon::Driver.new(platform, project, options) - artifact.dependencies - rescue RuntimeError => e - failures.push("#{project}, #{platform}: #{e}") - end + artifact = Vanagon::Driver.new(platform, project, options) + artifact.dependencies + rescue RuntimeError => e + failures.push("#{project}, #{platform}: #{e}") end end @@ -92,7 +90,7 @@ def options_translate(docopt_options) '' => :project_name, '' => :platforms } - return docopt_options.map { |k, v| [translations[k], v] }.to_h + return docopt_options.transform_keys { |k| translations[k] } end end end diff --git a/lib/vanagon/cli/inspect.rb b/lib/vanagon/cli/inspect.rb index 8b5fbb49b..fea6539d7 100644 --- a/lib/vanagon/cli/inspect.rb +++ b/lib/vanagon/cli/inspect.rb @@ -56,7 +56,7 @@ def options_translate(docopt_options) '' => :project_name, '' => :platforms } - return docopt_options.map { |k, v| [translations[k], v] }.to_h + return docopt_options.transform_keys { |k| translations[k] } end def options_validate(options) diff --git a/lib/vanagon/cli/list.rb b/lib/vanagon/cli/list.rb index 4c83af1f8..5cd938f9b 100644 --- a/lib/vanagon/cli/list.rb +++ b/lib/vanagon/cli/list.rb @@ -87,7 +87,7 @@ def options_translate(docopt_options) '--projects' => :projects, '--use-spaces' => :use_spaces, } - return docopt_options.map { |k, v| [translations[k], v] }.to_h + return docopt_options.transform_keys { |k| translations[k] } end end end diff --git a/lib/vanagon/cli/render.rb b/lib/vanagon/cli/render.rb index d92be204a..585f5a598 100644 --- a/lib/vanagon/cli/render.rb +++ b/lib/vanagon/cli/render.rb @@ -53,7 +53,7 @@ def options_translate(docopt_options) '' => :project_name, '' => :platforms, } - return docopt_options.map { |k, v| [translations[k], v] }.to_h + return docopt_options.transform_keys { |k| translations[k] } end end end diff --git a/lib/vanagon/cli/ship.rb b/lib/vanagon/cli/ship.rb index ab3fcefa1..04d873715 100644 --- a/lib/vanagon/cli/ship.rb +++ b/lib/vanagon/cli/ship.rb @@ -22,7 +22,7 @@ def parse(argv) def run(_) ENV['PROJECT_ROOT'] = Dir.pwd - if Dir['output/**/*'].select { |entry| File.file?(entry) }.empty? + if Dir['output/**/*'].none? { |entry| File.file?(entry) } VanagonLogger.error 'vanagon: Error: No packages to ship in the "output" directory. Maybe build some first?' exit 1 end diff --git a/lib/vanagon/cli/sign.rb b/lib/vanagon/cli/sign.rb index 72d33796c..4f3c4859d 100644 --- a/lib/vanagon/cli/sign.rb +++ b/lib/vanagon/cli/sign.rb @@ -21,7 +21,7 @@ def parse(argv) def run(_) ENV['PROJECT_ROOT'] = Dir.pwd - if Dir['output/**/*'].select { |entry| File.file?(entry) }.empty? + if Dir['output/**/*'].none? { |entry| File.file?(entry) } VanagonLogger.error 'sign: Error: No packages to sign in the "output" directory. Maybe build some first?' exit 1 end diff --git a/lib/vanagon/common/user.rb b/lib/vanagon/common/user.rb index eb96c88b2..3735e0237 100644 --- a/lib/vanagon/common/user.rb +++ b/lib/vanagon/common/user.rb @@ -15,10 +15,10 @@ def initialize(name, group = nil, shell = nil, is_system = false, homedir = nil) # # @return [true, false] true if all attributes have equal values. false otherwise. def ==(other) - other.name == self.name && \ - other.group == self.group && \ - other.shell == self.shell && \ - other.is_system == self.is_system && \ + other.name == self.name && + other.group == self.group && + other.shell == self.shell && + other.is_system == self.is_system && other.homedir == self.homedir end end diff --git a/lib/vanagon/component.rb b/lib/vanagon/component.rb index 7692bbdae..08123f914 100644 --- a/lib/vanagon/component.rb +++ b/lib/vanagon/component.rb @@ -260,27 +260,25 @@ def mirrors # rubocop:disable Lint/DuplicateMethods # if #fetch is successful. def fetch_mirrors(options) mirrors.to_a.shuffle.each do |mirror| - begin - VanagonLogger.info %(Attempting to fetch from mirror URL "#{mirror}") - @source = Vanagon::Component::Source.source(mirror, **options) - return true if source.fetch - rescue Vanagon::InvalidSource - # This means that the URL was not a git repo or a valid downloadable file, - # which means either the URL is incorrect, or we don't have access to that - # resource. Return false, so that the pkg.url value can be used instead. - VanagonLogger.error %(Invalid source "#{mirror}") - rescue SocketError - # SocketError means that there was no DNS/name resolution - # for whatever remote protocol the mirror tried to use. - VanagonLogger.error %(Unable to resolve mirror URL "#{mirror}") - rescue StandardError - # Source retrieval does not consistently return a meaningful - # namespaced error message, which means we're brute-force rescuing - # StandardError. Also, we want to handle other unexpected things when - # we try reaching out to the URL, so that we can gracefully return - # false and fall back to fetching the pkg.url value instead. - VanagonLogger.error %(Unable to retrieve mirror URL "#{mirror}") - end + VanagonLogger.info %(Attempting to fetch from mirror URL "#{mirror}") + @source = Vanagon::Component::Source.source(mirror, **options) + return true if source.fetch + rescue Vanagon::InvalidSource + # This means that the URL was not a git repo or a valid downloadable file, + # which means either the URL is incorrect, or we don't have access to that + # resource. Return false, so that the pkg.url value can be used instead. + VanagonLogger.error %(Invalid source "#{mirror}") + rescue SocketError + # SocketError means that there was no DNS/name resolution + # for whatever remote protocol the mirror tried to use. + VanagonLogger.error %(Unable to resolve mirror URL "#{mirror}") + rescue StandardError + # Source retrieval does not consistently return a meaningful + # namespaced error message, which means we're brute-force rescuing + # StandardError. Also, we want to handle other unexpected things when + # we try reaching out to the URL, so that we can gracefully return + # false and fall back to fetching the pkg.url value instead. + VanagonLogger.error %(Unable to retrieve mirror URL "#{mirror}") end false end diff --git a/lib/vanagon/engine/docker.rb b/lib/vanagon/engine/docker.rb index a67251e24..c77d4cded 100644 --- a/lib/vanagon/engine/docker.rb +++ b/lib/vanagon/engine/docker.rb @@ -140,12 +140,10 @@ def docker_cp_globs_from(globs, host_path) # @return [void] def wait_for_ssh Vanagon::Utilities.retry_with_timeout(5, 5) do - begin - Vanagon::Utilities.remote_ssh_command("#{@target_user}@#{@target}", 'exit', @target_port) - rescue StandardError => e - sleep(1) # Give SSHD some time to start. - raise e - end + Vanagon::Utilities.remote_ssh_command("#{@target_user}@#{@target}", 'exit', @target_port) + rescue StandardError => e + sleep(1) # Give SSHD some time to start. + raise e end rescue StandardError => e raise Vanagon::Error.wrap(e, "SSH was not up in the container after 5 seconds.") diff --git a/lib/vanagon/logger.rb b/lib/vanagon/logger.rb index 5f927f822..75434ede9 100644 --- a/lib/vanagon/logger.rb +++ b/lib/vanagon/logger.rb @@ -22,7 +22,7 @@ def self.error(msg) end def initialize(output = $stdout) - super(output) + super self.level = ::Logger::INFO self.formatter = proc do |severity, datetime, progname, msg| "#{msg}\n" diff --git a/lib/vanagon/platform/deb.rb b/lib/vanagon/platform/deb.rb index 8061a157d..e8215804a 100644 --- a/lib/vanagon/platform/deb.rb +++ b/lib/vanagon/platform/deb.rb @@ -144,7 +144,7 @@ def initialize(name) @num_cores = "/usr/bin/nproc" @curl = "curl --silent --show-error --fail --location" @valid_operators = ['<', '>', '<=', '>=', '=', '<<', '>>'] - super(name) + super end end end diff --git a/lib/vanagon/platform/dsl.rb b/lib/vanagon/platform/dsl.rb index b580fd628..fc2b5b867 100644 --- a/lib/vanagon/platform/dsl.rb +++ b/lib/vanagon/platform/dsl.rb @@ -247,7 +247,7 @@ def servicedir(dir) @platform.servicedir = dir # Add to the servicetypes array if we haven't already - if @platform.servicetype && @platform.servicedir && @platform.servicetypes.select { |s| s.servicetype == @platform.servicetype }.empty? + if @platform.servicetype && @platform.servicedir && @platform.servicetypes.none? { |s| s.servicetype == @platform.servicetype } @platform.servicetypes << OpenStruct.new(:servicetype => @platform.servicetype, :servicedir => @platform.servicedir) end end @@ -263,7 +263,7 @@ def defaultdir(dir) # # @param type [String] service type for the platform ('sysv' for example) # @param servicedir [String] service dir for this platform and service type ('/etc/init.d' for example). Optional. - def servicetype(type, servicedir: nil) # rubocop:disable Metrics/AbcSize + def servicetype(type, servicedir: nil) if servicedir @platform.servicetypes << OpenStruct.new(:servicetype => type, :servicedir => servicedir) else @@ -271,7 +271,7 @@ def servicetype(type, servicedir: nil) # rubocop:disable Metrics/AbcSize end # Add to the servicetypes array if we haven't already - if @platform.servicetype && @platform.servicedir && @platform.servicetypes.select { |s| s.servicetype == @platform.servicetype }.empty? + if @platform.servicetype && @platform.servicedir && @platform.servicetypes.none? { |s| s.servicetype == @platform.servicetype } @platform.servicetypes << OpenStruct.new(:servicetype => @platform.servicetype, :servicedir => @platform.servicedir) end end diff --git a/lib/vanagon/platform/osx.rb b/lib/vanagon/platform/osx.rb index 6efbb2fdc..c49163028 100644 --- a/lib/vanagon/platform/osx.rb +++ b/lib/vanagon/platform/osx.rb @@ -136,7 +136,7 @@ def initialize(name) @num_cores = "/usr/sbin/sysctl -n hw.physicalcpu" @mktemp = "mktemp -d -t 'tmp'" @brew = '/usr/local/bin/brew' - super(name) + super end end end diff --git a/lib/vanagon/platform/rpm.rb b/lib/vanagon/platform/rpm.rb index 850090b57..9255c352f 100644 --- a/lib/vanagon/platform/rpm.rb +++ b/lib/vanagon/platform/rpm.rb @@ -104,7 +104,7 @@ def initialize(name) @num_cores ||= "/bin/grep -c 'processor' /proc/cpuinfo" @rpmbuild ||= "/usr/bin/rpmbuild" @curl = "curl --silent --show-error --fail --location" - super(name) + super end end end diff --git a/lib/vanagon/platform/rpm/aix.rb b/lib/vanagon/platform/rpm/aix.rb index 61a620e38..5140ea7e0 100644 --- a/lib/vanagon/platform/rpm/aix.rb +++ b/lib/vanagon/platform/rpm/aix.rb @@ -22,7 +22,7 @@ def initialize(name) @num_cores = "lsdev -Cc processor |wc -l" @install = "/opt/freeware/bin/install" @rpmbuild = "/usr/bin/rpm" - super(name) + super end end end diff --git a/lib/vanagon/platform/rpm/eos.rb b/lib/vanagon/platform/rpm/eos.rb index fcbfa5aef..e7a76b1b2 100644 --- a/lib/vanagon/platform/rpm/eos.rb +++ b/lib/vanagon/platform/rpm/eos.rb @@ -14,7 +14,7 @@ def generate_package(project) else case project.platform.package_type when "rpm" - return super(project) + return super when "swix" return generate_swix_package(project) else @@ -34,7 +34,7 @@ def package_name(project) else case project.platform.package_type when "rpm" - return super(project) + return super when "swix" return swix_package_name(project) else diff --git a/lib/vanagon/platform/solaris_10.rb b/lib/vanagon/platform/solaris_10.rb index 73c60b99f..17bc5b622 100644 --- a/lib/vanagon/platform/solaris_10.rb +++ b/lib/vanagon/platform/solaris_10.rb @@ -189,7 +189,7 @@ def initialize(name) @shasum = "/opt/csw/bin/shasum" # solaris 10 @num_cores = "/usr/bin/kstat cpu_info | awk '{print $$1}' | grep '^core_id$$' | wc -l" - super(name) + super if @architecture == "sparc" @platform_triple = "sparc-sun-solaris2.#{@os_version}" elsif @architecture == "i386" diff --git a/lib/vanagon/platform/solaris_11.rb b/lib/vanagon/platform/solaris_11.rb index ce9794967..52fd433da 100644 --- a/lib/vanagon/platform/solaris_11.rb +++ b/lib/vanagon/platform/solaris_11.rb @@ -118,7 +118,7 @@ def initialize(name) @patch = "/usr/bin/gpatch" @sed = "/usr/gnu/bin/sed" @num_cores = "/usr/bin/kstat cpu_info | /usr/bin/ggrep -E '[[:space:]]+core_id[[:space:]]' | wc -l" - super(name) + super if @architecture == "sparc" @platform_triple = "sparc-sun-solaris2.#{@os_version}" elsif @architecture == "i386" diff --git a/lib/vanagon/platform/windows.rb b/lib/vanagon/platform/windows.rb index 66699c94f..66a44e513 100644 --- a/lib/vanagon/platform/windows.rb +++ b/lib/vanagon/platform/windows.rb @@ -457,7 +457,7 @@ def initialize(name) @install = "/usr/bin/install" @copy = "/usr/bin/cp" @package_type = "msi" - super(name) + super end end end diff --git a/lib/vanagon/project.rb b/lib/vanagon/project.rb index 03cebc0e8..ece6391f1 100644 --- a/lib/vanagon/project.rb +++ b/lib/vanagon/project.rb @@ -462,13 +462,8 @@ def get_all_trigger_pkgs() # @return [Array] of OpenStructs of all interest triggers for the pkg_state # Use array of openstructs because we need both interest_name and the scripts def get_interest_triggers(pkg_state) - interest_triggers = [] check_pkg_state_string(pkg_state) - interests = components.flat_map(&:interest_triggers).compact.select { |s| s.pkg_state.include? pkg_state } - interests.each do |interest| - interest_triggers.push(interest) - end - interest_triggers.flatten.compact + components.flat_map(&:interest_triggers).compact.select { |s| s.pkg_state.include? pkg_state }.flatten.compact end # Collects activate triggers for the project and its components diff --git a/lib/vanagon/utilities.rb b/lib/vanagon/utilities.rb index 48a349862..9fb8cb750 100644 --- a/lib/vanagon/utilities.rb +++ b/lib/vanagon/utilities.rb @@ -162,13 +162,11 @@ def retry_with_timeout(tries = 5, timeout = 1, &blk) error = nil tries.to_i.times do Timeout::timeout(timeout.to_i) do - begin - yield - return true - rescue StandardError => e - VanagonLogger.error 'An error was encountered evaluating block. Retrying..' - error = e - end + yield + return true + rescue StandardError => e + VanagonLogger.error 'An error was encountered evaluating block. Retrying..' + error = e end end