Sha256: f08837588ad6f89bd103f9bca8f3f237bc1633607ffd85b17f0701d7582fc20b

Contents?: true

Size: 1.26 KB

Versions: 1

Compression:

Stored size: 1.26 KB

Contents

# frozen_string_literal: true

module Getch
  module FileSystem
    module Lvm
      class Config < Getch::FileSystem::Lvm::Device
        def initialize
          super
          gen_uuid
          @init = '/usr/lib/systemd/systemd'
        end

        def fstab
          file = "#{MOUNTPOINT}/etc/fstab"
          datas = data_fstab
          File.write(file, datas.join("\n"))
        end

        def cmdline
          conf = "#{MOUNTPOINT}/etc/dracut.conf.d/cmdline.conf"
          line = "resume=#{@lv_swap} rd.lvm.vg=#{@vg} init=#{@init}"
          File.write conf, "kernel_cmdline=\"#{line}\"\n"
        end

        private

        def gen_uuid
          @uuid_boot = `lsblk -o "UUID" #{@dev_boot} | tail -1`.chomp() if @dev_boot
          @uuid_esp = `lsblk -o "UUID" #{@dev_esp} | tail -1`.chomp() if @dev_esp
        end

        def data_fstab
          efi = @dev_esp ? "UUID=#{@uuid_esp} /efi vfat noauto,noatime 1 2" : ''
          boot = @dev_boot ? "UUID=#{@uuid_boot} /boot ext4 noauto,noatime 1 2" : ''
          swap = "#{@lv_swap} none swap discard 0 0"
          root = "#{@lv_root} / ext4 defaults 0 1"
          home = @lv_home ? "#{@lv_home} /home/#{@user} ext4 defaults 0 2" : ''

          [ efi, boot, swap, root, home ]
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
getch-0.1.9 lib/getch/filesystem/lvm/config.rb