diff --git a/.rubocop.yml b/.rubocop.yml index 1d2c30df4..f61fe5b84 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -120,3 +120,7 @@ Style/MethodName: Style/VariableName: Include: - 'src/lib/**/*.rb' # force known variables only for new code + +# alias method is safer option +Style/Alias: + EnforcedStyle: prefer_alias_method diff --git a/src/lib/bootloader/autoyast_converter.rb b/src/lib/bootloader/autoyast_converter.rb index 29fbf0a9f..cdcf24799 100644 --- a/src/lib/bootloader/autoyast_converter.rb +++ b/src/lib/bootloader/autoyast_converter.rb @@ -111,7 +111,7 @@ def import_timeout(data, default) "boot_boot" => :BootPartitionDevice, "boot_mbr" => :mbr_disk, "boot_extended" => :ExtendedPartitionDevice - } + }.freeze def import_stage1(data, bootloader) return unless bootloader.name == "grub2" @@ -184,7 +184,7 @@ def bootloader_from_data(data) "boot_boot" => :boot_partition?, "boot_mbr" => :mbr?, "boot_extended" => :extended_partition? - } + }.freeze def export_stage1(res, stage1) STAGE1_MAPPING.each do |key, method| res[key] = stage1.public_send(method) ? "true" : "false" @@ -200,7 +200,7 @@ def export_stage1(res, stage1) # only for grub2, not for others GRUB2_BOOLEAN_MAPPING = { "trusted_grub" => :trusted_boot - } + }.freeze def export_grub2(res, bootloader) GRUB2_BOOLEAN_MAPPING.each do |key, method| val = bootloader.public_send(method) @@ -210,23 +210,23 @@ def export_grub2(res, bootloader) DEFAULT_BOOLEAN_MAPPING = { "os_prober" => :os_prober - } + }.freeze DEFAULT_STRING_MAPPING = { "gfxmode" => :gfxmode, "serial" => :serial_console, "terminal" => :terminal - } + }.freeze DEFAULT_KERNEL_PARAMS_MAPPING = { "append" => :kernel_params, "xen_append" => :xen_kernel_params, "xen_kernel_append" => :xen_hypervisor_params - } + }.freeze SYMBOL_PARAM = [ "terminal" - ] + ].freeze def export_default(res, default) DEFAULT_BOOLEAN_MAPPING.each do |key, method| val = default.public_send(method) diff --git a/src/lib/bootloader/boot_record_backup.rb b/src/lib/bootloader/boot_record_backup.rb index 7c716d508..b692a0b18 100644 --- a/src/lib/bootloader/boot_record_backup.rb +++ b/src/lib/bootloader/boot_record_backup.rb @@ -9,7 +9,7 @@ class BootRecordBackup BASH_PATH = Yast::Path.new(".target.bash") BASH_OUTPUT_PATH = Yast::Path.new(".target.bash_output") TARGET_SIZE = Yast::Path.new(".target.size") - MAIN_BACKUP_DIR = "/var/lib/YaST2/backup_boot_sectors/" + MAIN_BACKUP_DIR = "/var/lib/YaST2/backup_boot_sectors/".freeze KEPT_BACKUPS = 10 attr_reader :device @@ -120,8 +120,7 @@ def rotate Yast::SCR.Execute( BASH_PATH, format("/bin/mv %{path} %{path}-%{date}", - path: device_file_path, date: change_date - ) + path: device_file_path, date: change_date) ) end end diff --git a/src/lib/bootloader/bootloader_factory.rb b/src/lib/bootloader/bootloader_factory.rb index f1402bf8c..14722f3c3 100644 --- a/src/lib/bootloader/bootloader_factory.rb +++ b/src/lib/bootloader/bootloader_factory.rb @@ -15,7 +15,7 @@ class BootloaderFactory "none", # allows user to manage bootloader itself "grub2", "grub2-efi" - ] + ].freeze class << self attr_writer :current diff --git a/src/lib/bootloader/device_map.rb b/src/lib/bootloader/device_map.rb index b5d27a5b6..31faf4240 100644 --- a/src/lib/bootloader/device_map.rb +++ b/src/lib/bootloader/device_map.rb @@ -80,7 +80,7 @@ def propose def sorted_disks grub_devices.select { |d| d.start_with?("hd") } - .sort_by { |dev| dev[2..-1].to_i } + .sort_by { |dev| dev[2..-1].to_i } end BIOS_LIMIT = 8 diff --git a/src/lib/bootloader/disk_change_detector.rb b/src/lib/bootloader/disk_change_detector.rb index ffeb33283..32d798ae8 100644 --- a/src/lib/bootloader/disk_change_detector.rb +++ b/src/lib/bootloader/disk_change_detector.rb @@ -28,7 +28,7 @@ def changes # TRANSLATORS: %s stands for partition ret << _("Selected bootloader partition %s is not available any more.") % - device + device end end diff --git a/src/lib/bootloader/grub2_widgets.rb b/src/lib/bootloader/grub2_widgets.rb index c4397684c..095216627 100644 --- a/src/lib/bootloader/grub2_widgets.rb +++ b/src/lib/bootloader/grub2_widgets.rb @@ -55,16 +55,15 @@ def label def help _("

Timeout in Seconds
\n" \ - "Specifies the time the bootloader will wait until the default kernel is loaded.

\n" - ) + "Specifies the time the bootloader will wait until the default kernel is loaded.

\n") end def init - if grub_default.hidden_timeout && grub_default.hidden_timeout.to_i > 0 - self.value = grub_default.hidden_timeout.to_i - else - self.value = grub_default.timeout.to_i - end + self.value = if grub_default.hidden_timeout && grub_default.hidden_timeout.to_i > 0 + grub_default.hidden_timeout.to_i + else + grub_default.timeout.to_i + end end def store @@ -316,7 +315,7 @@ def initialize textdomain "bootloader" end - MASKED_PASSWORD = "**********" + MASKED_PASSWORD = "**********".freeze def contents HBox( diff --git a/src/lib/bootloader/grub2base.rb b/src/lib/bootloader/grub2base.rb index 38ffedf62..580cef3e7 100644 --- a/src/lib/bootloader/grub2base.rb +++ b/src/lib/bootloader/grub2base.rb @@ -161,7 +161,7 @@ def merge_password(other) @password = other.password end - KERNEL_FLAVORS_METHODS = [:kernel_params, :xen_hypervisor_params, :xen_kernel_params] + KERNEL_FLAVORS_METHODS = [:kernel_params, :xen_hypervisor_params, :xen_kernel_params].freeze def merge_grub_default(other) default = grub_default diff --git a/src/lib/bootloader/grub2pwd.rb b/src/lib/bootloader/grub2pwd.rb index 7386ece28..38fdef115 100644 --- a/src/lib/bootloader/grub2pwd.rb +++ b/src/lib/bootloader/grub2pwd.rb @@ -50,7 +50,7 @@ def password? private YAST_BASH_PATH = Yast::Path.new(".local.bash_output") - PWD_ENCRYPTION_FILE = "/etc/grub.d/42_password" + PWD_ENCRYPTION_FILE = "/etc/grub.d/42_password".freeze def propose @used = false @@ -108,7 +108,7 @@ def enable Yast::SCR.Write( Yast::Path.new(".target.string"), - [PWD_ENCRYPTION_FILE, 0700], + [PWD_ENCRYPTION_FILE, 0o700], file_content ) end @@ -125,8 +125,7 @@ def encrypt(password) quoted_password = Yast::String.Quote(password) result = Yast::WFM.Execute(YAST_BASH_PATH, - "echo '#{quoted_password}\n#{quoted_password}\n' | LANG=C grub2-mkpasswd-pbkdf2" - ) + "echo '#{quoted_password}\n#{quoted_password}\n' | LANG=C grub2-mkpasswd-pbkdf2") if result["exit"] != 0 raise "Failed to create encrypted password for grub2. Command output: #{result["stderr"]}" diff --git a/src/lib/bootloader/grub_install.rb b/src/lib/bootloader/grub_install.rb index d203f5d13..4478943f4 100644 --- a/src/lib/bootloader/grub_install.rb +++ b/src/lib/bootloader/grub_install.rb @@ -78,14 +78,14 @@ def no_device_install? "s390_64" => "s390x-emu", "ppc" => "powerpc-ieee1275", "ppc64" => "powerpc-ieee1275" - } + }.freeze EFI_TARGETS = { "i386" => "i386-efi", "x86_64" => "x86_64-efi", "arm" => "arm-efi", "aarch64" => "arm64-efi" - } + }.freeze def target return @target if @target diff --git a/src/lib/bootloader/mbr_update.rb b/src/lib/bootloader/mbr_update.rb index fcccec391..feb302432 100644 --- a/src/lib/bootloader/mbr_update.rb +++ b/src/lib/bootloader/mbr_update.rb @@ -52,8 +52,8 @@ def mbr_is_gpt? mbr_type == "gpt" end - GPT_MBR = "/usr/share/syslinux/gptmbr.bin" - DOS_MBR = "/usr/share/syslinux/mbr.bin" + GPT_MBR = "/usr/share/syslinux/gptmbr.bin".freeze + DOS_MBR = "/usr/share/syslinux/mbr.bin".freeze def generic_mbr_file @generic_mbr_file ||= mbr_is_gpt? ? GPT_MBR : DOS_MBR end diff --git a/src/lib/bootloader/proposal_client.rb b/src/lib/bootloader/proposal_client.rb index 6d86fec04..2b569e26e 100644 --- a/src/lib/bootloader/proposal_client.rb +++ b/src/lib/bootloader/proposal_client.rb @@ -30,7 +30,7 @@ def initialize "disable_boot_root", "enable_boot_boot", "disable_boot_boot" - ] + ].freeze def make_proposal(attrs) force_reset = attrs["force_reset"] @@ -100,7 +100,7 @@ def description private - BOOT_SYSCONFIG_PATH = "/etc/sysconfig/bootloader" + BOOT_SYSCONFIG_PATH = "/etc/sysconfig/bootloader".freeze # read bootloader from /mnt as SCR is not yet switched in proposal # phase of update (bnc#874646) def old_bootloader @@ -182,20 +182,15 @@ def handle_errors(ret) end if !Yast::BootStorage.bootloader_installable? - ret.merge!( - "warning_level" => :error, - # error in the proposal - "warning" => _( - "Because of the partitioning, the bootloader cannot be installed properly" - ) + ret["warning_level"] = :error + ret["warning"] = _( + "Because of the partitioning, the bootloader cannot be installed properly" ) end if !Yast::BootSupportCheck.SystemSupported - ret.merge!( - "warning_level" => :error, - "warning" => Yast::BootSupportCheck.StringProblems - ) + ret["warning_level"] = :error + ret["warning"] = Yast::BootSupportCheck.StringProblems end ret diff --git a/src/lib/bootloader/sections.rb b/src/lib/bootloader/sections.rb index cb0592052..594c65df2 100644 --- a/src/lib/bootloader/sections.rb +++ b/src/lib/bootloader/sections.rb @@ -48,7 +48,8 @@ def write private - # @return [String, nil] return default boot path as string or nil if not set or something goes wrong + # @return [String, nil] return default boot path as string or nil if not set + # or something goes wrong # @note shows error popup if calling grub2-editenv failed def read_default_path # Execute.on_target can return nil if call failed. It shows users error popup, but bootloader diff --git a/src/lib/bootloader/serial_console.rb b/src/lib/bootloader/serial_console.rb index 6fc385486..1d6798e12 100644 --- a/src/lib/bootloader/serial_console.rb +++ b/src/lib/bootloader/serial_console.rb @@ -11,10 +11,10 @@ class SerialConsole "n" => "no", "o" => "odd", "e" => "even" - } + }.freeze SPEED_DEFAULT = 9600 - PARITY_DEFAULT = "no" - WORD_DEFAULT = "" + PARITY_DEFAULT = "no".freeze + WORD_DEFAULT = "".freeze # REGEXP that separate usefull parts of kernel parameter for serial console # matching groups are: diff --git a/src/lib/bootloader/stage1_proposal.rb b/src/lib/bootloader/stage1_proposal.rb index 99c4d8088..593ea159f 100644 --- a/src/lib/bootloader/stage1_proposal.rb +++ b/src/lib/bootloader/stage1_proposal.rb @@ -260,7 +260,7 @@ def on_gpt?(partition) "s390_64" => S390, "ppc" => PPC, "ppc64" => PPC - } + }.freeze AVAILABLE_PROPOSALS.default_proc = lambda { |_h, k| raise "unsuported architecture #{k}" } end end diff --git a/src/lib/bootloader/sysconfig.rb b/src/lib/bootloader/sysconfig.rb index c9edd3dd8..5f592a0e0 100644 --- a/src/lib/bootloader/sysconfig.rb +++ b/src/lib/bootloader/sysconfig.rb @@ -11,7 +11,7 @@ class Sysconfig bootloader: "LOADER_TYPE", secure_boot: "SECURE_BOOT", trusted_boot: "TRUSTED_BOOT" - } + }.freeze # specifies bootloader in sysconfig attr_accessor :bootloader @@ -31,11 +31,11 @@ def self.from_system bootloader = Yast::SCR.Read(AGENT_PATH + "LOADER_TYPE") # propose secure boot always to true (bnc#872054), otherwise respect user choice # but only on architectures that support it (bnc#984895) - if Yast::Arch.x86_64 || Yast::Arch.i386 - secure_boot = Yast::SCR.Read(AGENT_PATH + "SECURE_BOOT") != "no" - else - secure_boot = false - end + secure_boot = if Yast::Arch.x86_64 || Yast::Arch.i386 + Yast::SCR.Read(AGENT_PATH + "SECURE_BOOT") != "no" + else + false + end trusted_boot = Yast::SCR.Read(AGENT_PATH + "TRUSTED_BOOT") == "yes" @@ -85,7 +85,7 @@ def pre_write "# Enable Trusted Boot support\n" \ "# Only available for legacy (non-UEFI) boot.\n" \ "#\n" - } + }.freeze def write log.info "Saving /etc/sysconfig/bootloader for #{bootloader}" @@ -120,14 +120,12 @@ def ensure_file_exists_in_target return if File.exist?(File.join(destdir, "/etc/sysconfig")) Yast::WFM.Execute(Yast::Path.new(".local.mkdir"), - File.join(destdir, "/etc/sysconfig") - ) + File.join(destdir, "/etc/sysconfig")) Yast::WFM.Execute(Yast::Path.new(".local.bash"), - "touch #{destdir}/etc/sysconfig/bootloader" - ) + "touch #{destdir}/etc/sysconfig/bootloader") end - def temporary_target_agent(&block) + def temporary_target_agent old_agent = sys_agent @sys_agent = Yast::Path.new(".target.sysconfig.bootloader") @@ -141,7 +139,7 @@ def temporary_target_agent(&block) Yast::Term.new(:SysConfigFile, target_sysconfig_path)) ) - block.call + yield ensure Yast::SCR.UnregisterAgent(@sys_agent) @sys_agent = old_agent diff --git a/src/lib/bootloader/udev_mapping.rb b/src/lib/bootloader/udev_mapping.rb index 5d4b45b2a..de2cb5024 100644 --- a/src/lib/bootloader/udev_mapping.rb +++ b/src/lib/bootloader/udev_mapping.rb @@ -128,7 +128,7 @@ def all_devices id: "udev_id", path: "udev_path", label: "label" - } + }.freeze # Maps udev key in Storage target map to device prefix UDEV_MAPPING = { @@ -136,7 +136,7 @@ def all_devices "udev_id" => "/dev/disk/by-id/", "udev_path" => "/dev/disk/by-path/", "label" => "/dev/disk/by-label/" - } + }.freeze # Maps udev names to kernel names with given mapping from data to device # @private internall use only diff --git a/src/modules/BootArch.rb b/src/modules/BootArch.rb index 0df257560..1b241fe81 100644 --- a/src/modules/BootArch.rb +++ b/src/modules/BootArch.rb @@ -51,11 +51,11 @@ def DefaultKernelParams(resume) ret << " splash=silent quiet showopts" return ret elsif Arch.s390 - if ENV["TERM"] == "linux" - termparm = "TERM=linux console=ttyS0 console=ttyS1" - else - termparm = "hvc_iucv=8 TERM=dumb" - end + termparm = if ENV["TERM"] == "linux" + "TERM=linux console=ttyS0 console=ttyS1" + else + "hvc_iucv=8 TERM=dumb" + end parameters = "#{features} #{termparm}" parameters << " resume=#{resume}" unless resume.empty? return parameters diff --git a/src/modules/BootStorage.rb b/src/modules/BootStorage.rb index 070286e88..613ecc9fb 100644 --- a/src/modules/BootStorage.rb +++ b/src/modules/BootStorage.rb @@ -264,11 +264,11 @@ def available_swap_partitions end partitions.each do |s| # bnc#577127 - Encrypted swap is not properly set up as resume device - if s["crypt_device"] && !s["crypt_device"].empty? - dev = s["crypt_device"] - else - dev = s["device"] - end + dev = if s["crypt_device"] && !s["crypt_device"].empty? + s["crypt_device"] + else + s["device"] + end ret[dev] = s["size_k"] || 0 end end diff --git a/src/modules/Bootloader.rb b/src/modules/Bootloader.rb index 312965f20..a5461d215 100644 --- a/src/modules/Bootloader.rb +++ b/src/modules/Bootloader.rb @@ -35,7 +35,7 @@ module Yast class BootloaderClass < Module include Yast::Logger - BOOLEAN_MAPPING = { true => :present, false => :missing } + BOOLEAN_MAPPING = { true => :present, false => :missing }.freeze def main textdomain "bootloader" @@ -97,7 +97,7 @@ def Import(data) ::Bootloader::BootloaderFactory.clear_cache proposed_configuration = ::Bootloader::BootloaderFactory - .bootloader_by_name(imported_configuration.name) + .bootloader_by_name(imported_configuration.name) unless Mode.config # no AutoYaST configuration mode proposed_configuration.propose proposed_configuration.merge(imported_configuration) @@ -267,7 +267,7 @@ def getDefaultSection :common => "append", :xen_guest => "xen_append", :xen_host => "xen_kernel_append" - } + }.freeze # Gets value for given parameter in kernel parameters for given flavor. # @param [Symbol] flavor flavor of kernel, for possible values see #modify_kernel_param @@ -427,7 +427,7 @@ def mark_as_changed Initrd.changed = true if Arch.s390 && Stage.initial end - NONSPLASH_VGA_VALUES = ["", "false", "ask"] + NONSPLASH_VGA_VALUES = ["", "false", "ask"].freeze # store new vgamode if needed and regenerate initrd in such case # @param params_to_save used to store predefined vgamode value diff --git a/test/grub2_widgets_test.rb b/test/grub2_widgets_test.rb index 0027ec37c..100e2d071 100644 --- a/test/grub2_widgets_test.rb +++ b/test/grub2_widgets_test.rb @@ -623,9 +623,9 @@ def stub_widget_value(id, value) it "enlists all available sections" do expect(subject.items).to eq([ - ["openSUSE", "openSUSE"], - ["windows", "windows"] - ]) + ["openSUSE", "openSUSE"], + ["windows", "windows"] + ]) end end diff --git a/test/grub2pwd_test.rb b/test/grub2pwd_test.rb index 6cd2ab6f8..dd344be1f 100644 --- a/test/grub2pwd_test.rb +++ b/test/grub2pwd_test.rb @@ -17,14 +17,14 @@ def mock_file_presence(exists) .and_return(exists) end - ENCRYPTED_PASSWORD = "grub.pbkdf2.sha512.10000.774E325959D6D7BCFB7384A0245674D83D0D540A89C02FEA81E35489F8DE7ADFD93988190AD9857A0FFF363825DDF97C8F4E658D8CC49FC4A22C053B08AB3EFE.6FB19FF26FD03D85C40A33D8BA7C04E72EDE3DD5D7080C177553A4FED370F71C579AF0B15B3B93ECECEA355469A4B6D0560BFB53ED35DDA0B80F5363BFBD54E4" + ENCRYPTED_PASSWORD = "grub.pbkdf2.sha512.10000.774E325959D6D7BCFB7384A0245674D83D0D540A89C02FEA81E35489F8DE7ADFD93988190AD9857A0FFF363825DDF97C8F4E658D8CC49FC4A22C053B08AB3EFE.6FB19FF26FD03D85C40A33D8BA7C04E72EDE3DD5D7080C177553A4FED370F71C579AF0B15B3B93ECECEA355469A4B6D0560BFB53ED35DDA0B80F5363BFBD54E4".freeze FILE_CONTENT_RESTRICTED = "#! /bin/sh\n" \ "exec tail -n +3 $0\n" \ "# File created by YaST and next YaST run probably overwrite it\n" \ "set superusers=\"root\"\n" \ "password_pbkdf2 root #{ENCRYPTED_PASSWORD}\n" \ - "export superusers\n" + "export superusers\n".freeze FILE_CONTENT_UNRESTRICTED = FILE_CONTENT_RESTRICTED + "set unrestricted_menu=\"y\"\n" \ @@ -32,7 +32,7 @@ def mock_file_presence(exists) FILE_CONTENT_WRONG = "#! /bin/sh\n" \ "exec tail -n +3 $0\n" \ - "# File created by YaST and next YaST run probably overwrite it\n" \ + "# File created by YaST and next YaST run probably overwrite it\n".freeze \ describe ".new" do @@ -165,7 +165,7 @@ def mock_file_presence(exists) expect(Yast::SCR).to receive(:Write) .with( path(".target.string"), - [described_class::PWD_ENCRYPTION_FILE, 0700], + [described_class::PWD_ENCRYPTION_FILE, 0o700], FILE_CONTENT_RESTRICTED ) @@ -177,7 +177,7 @@ def mock_file_presence(exists) expect(Yast::SCR).to receive(:Write) .with( path(".target.string"), - [described_class::PWD_ENCRYPTION_FILE, 0700], + [described_class::PWD_ENCRYPTION_FILE, 0o700], FILE_CONTENT_UNRESTRICTED ) @@ -189,7 +189,7 @@ def mock_file_presence(exists) expect(Yast::SCR).to receive(:Write) .with( path(".target.string"), - [described_class::PWD_ENCRYPTION_FILE, 0700], + [described_class::PWD_ENCRYPTION_FILE, 0o700], FILE_CONTENT_RESTRICTED ) diff --git a/test/mbr_update_test.rb b/test/mbr_update_test.rb index 1e482b3b0..8b17f78dc 100644 --- a/test/mbr_update_test.rb +++ b/test/mbr_update_test.rb @@ -34,8 +34,7 @@ def stage1(devices: [], activate: false, generic_mbr: false) # fake query for gpt label allow(Yast::Storage).to receive(:GetTargetMap).and_return( double(:fetch => { "label" => "msdos" }, - :[] => { "label" => "msdos" } - ) + :[] => { "label" => "msdos" }) ) end @@ -157,8 +156,7 @@ def stage1(devices: [], activate: false, generic_mbr: false) before do allow(Yast::Storage).to receive(:GetTargetMap).and_return( double(:fetch => { "label" => "msdos" }, - :[] => { "label" => "msdos" } - ) + :[] => { "label" => "msdos" }) ) end @@ -196,8 +194,7 @@ def stage1(devices: [], activate: false, generic_mbr: false) before do allow(Yast::Storage).to receive(:GetTargetMap).and_return( double(:fetch => { "label" => "gpt" }, - :[] => { "label" => "gpt" } - ) + :[] => { "label" => "gpt" }) ) end diff --git a/test/sysconfig_test.rb b/test/sysconfig_test.rb index ba3655ef8..f627f1480 100644 --- a/test/sysconfig_test.rb +++ b/test/sysconfig_test.rb @@ -69,7 +69,8 @@ it "write comments for attributes if it is not already written" do sysconfig = Bootloader::Sysconfig.new(bootloader: "grub2", secure_boot: true) allow(Yast::SCR).to receive(:Read).with( - Yast::Path.new(".sysconfig.bootloader.SECURE_BOOT.comment")) + Yast::Path.new(".sysconfig.bootloader.SECURE_BOOT.comment") + ) .and_return("comment ABC") expect(Yast::SCR).to receive(:Write).with( Yast::Path.new(".sysconfig.bootloader.LOADER_TYPE.comment"), anything