Sha256: ef2631cbb28ff97b8b4ee921bbd4d1c123f0d15818e766fd3490ca5db7ec75ac

Contents?: true

Size: 1.17 KB

Versions: 1

Compression:

Stored size: 1.17 KB

Contents

# frozen_string_literal: true

require 'fileutils'

module Getch
  module FileSystem
    class Mount
      def initialize
        @root_dir = MOUNTPOINT
        @boot_dir = "#{@root_dir}/boot"
        @boot_efi_dir = "#{@root_dir}/efi"
        @home_dir = "#{@root_dir}/home"
        @state = Getch::States.new
        @log = Getch::Log.new
      end

      def swap(dev)
        return unless dev

        if Helpers.grep?('/proc/swaps', /^\/dev/)
          exec("swapoff #{dev}")
        end

        exec("swapon #{dev}")
      end

      def root(dev)
        return unless dev

        Helpers.mkdir(@root_dir)
        exec("mount #{dev} #{@root_dir}")
      end

      def esp(dev)
        return unless dev

        Helpers.mkdir(@boot_efi_dir)
        exec("mount #{dev} #{@boot_efi_dir}")
      end

      def boot(dev)
        return unless dev

        Helpers.mkdir(@boot_dir)
        exec("mount #{dev} #{@boot_dir}")
      end

      def home(dev)
        return unless dev

        Helpers.mkdir(@home_dir)
        exec("mount #{dev} #{@home_dir}")
      end

      private

      def exec(cmd)
        @log.info("==> #{cmd}")
        Helpers.sys(cmd)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
getch-0.1.9 lib/getch/filesystem/mount.rb