Sha256: e2735000ca382ceb6a931c0065148b78f67e0501507b87f848241e920b515b22

Contents?: true

Size: 1.25 KB

Versions: 1

Compression:

Stored size: 1.25 KB

Contents

module Getch
  module FileSystem
    module Lvm
      class Deps
        def make
          install_bios unless Helpers::efi?
          install_deps
          options_make
          Getch::Make.new("genkernel --kernel-config=/usr/src/linux/.config all").run!
        end

        private
        def options_make
          grub = Helpers::efi? ? 'BOOTLOADER="no"' : 'BOOTLOADER="grub2"'
          datas = [
            '',
            grub,
            'INSTALL="yes"',
            'MENUCONFIG="no"',
            'CLEAN="yes"',
            'SAVE_CONFIG="yes"',
            'MOUNTBOOT="yes"',
            'MRPROPER="no"',
            'LVM="yes"',
          ]
          file = "#{MOUNTPOINT}/etc/genkernel.conf"
          File.write(file, datas.join("\n"), mode: 'a')
        end

        def install_bios
          exec("euse -p sys-boot/grub -E device-mapper")
        end

        def install_deps
          make_conf = "#{MOUNTPOINT}/etc/portage/make.conf"
          exec("euse -E lvm") if ! Helpers::grep?(make_conf, /lvm/)
          Getch::Emerge.new('genkernel lvm2').pkg!
          Getch::Bask.new('-a lvm').run!
          exec("systemctl enable lvm2-monitor")
        end

        def exec(cmd)
          Getch::Chroot.new(cmd).run!
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
getch-0.1.2 lib/getch/filesystem/lvm/deps.rb