src/lib/bootloader/auto_client.rb
# frozen_string_literal: true
require "yast"
require "installation/auto_client"
require "bootloader/bootloader_factory"
require "bootloader/autoyast_converter"
require "bootloader/exceptions"
require "bootloader/main_dialog"
require "bootloader/autoinst_profile/bootloader_section"
Yast.import "Bootloader"
Yast.import "BootStorage"
Yast.import "Initrd"
Yast.import "Progress"
Yast.import "PackagesProposal"
module Bootloader
# Autoyast client for bootloader
class AutoClient < ::Installation::AutoClient
include Yast::I18n
class << self
attr_accessor :changed
end
def run
progress_orig = Yast::Progress.set(false)
ret = super
Yast::Progress.set(progress_orig)
ret
end
def import(data)
return true unless Yast::Bootloader.Import(data)
Yast::PackagesProposal.AddResolvables("yast2-bootloader",
:package, BootloaderFactory.current.packages)
true
end
def summary
formatted_summary = Yast::Bootloader.Summary.map { |l| "<LI>#{l}</LI>" }
"<UL>#{formatted_summary.join("\n")}</UL>"
end
def modified?
self.class.changed
end
def modified
self.class.changed = true
end
def reset
Yast::Bootloader.Reset
end
def change
::Bootloader::MainDialog.new.run_auto
end
# Return configuration data
#
# Some of the sections are useless as they're ignored during import.
# (for example, entries are generated by Grub2 itself).
#
# More details can be found in the original pull request at
# https://github.com/yast/yast-bootloader/pull/272
#
# return map or list
def export
Yast::Bootloader.Export
end
def write
Yast::Bootloader.Write
end
def read
Yast::Initrd.Read
Yast::Bootloader.Read
end
end
end