Sha256: 1c35923bb2b7d713930ed31b92e1caaea724506229fd7b49b145a0fadd15e0c1

Contents?: true

Size: 1.29 KB

Versions: 1

Compression:

Stored size: 1.29 KB

Contents

module Getch
  module FileSystem
    module Lvm
      class Deps
        def initialize
          if Helpers::efi?
            install_efi
          else
            install_bios
          end
          install_deps
        end

        def make
          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_efi
        end

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

        def install_deps
          exec("euse -E lvm")
          Getch::Emerge.new('genkernel lvm2').pkg!
          Getch::Garden.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.0 lib/getch/filesystem/lvm/deps.rb