class Freydis::Disk

Public Class Methods

new(dev) click to toggle source
# File lib/freydis/disk.rb, line 5
def initialize(dev)
  @disk = Freydis::Guard.disk(dev)
  @dev = "/dev/#{@disk}"
end

Public Instance Methods

complete_info() click to toggle source
# File lib/freydis/disk.rb, line 14
def complete_info
  `lsblk -dno "NAME,LABEL,FSTYPE,SIZE" #{@dev}`.chomp
end
encrypt(data) click to toggle source
# File lib/freydis/disk.rb, line 25
def encrypt(data)
  search_id(data)
  puts "id -> #{data.options[:disk_id]}"
  data.save

  cryptsetup = Freydis::Cryptsetup.new(data)
  cryptsetup.close

  cryptsetup.encrypt
  cryptsetup.open
  cryptsetup.format

  populate_data(data)
  puts "uuid -> #{data.options[:disk_uuid]}"
  puts "partuuid -> #{data.options[:disk_partuuid]}"
  data.save

  cryptsetup.close
end
populate_data(data) click to toggle source
# File lib/freydis/disk.rb, line 18
def populate_data(data)
  puts "Checking IDs on #{@disk}..."
  data.options[:disk_uuid] = search_uuid
  data.options[:disk_id] = search_id
  data.options[:disk_partuuid] = search_partuuid
end
search_id() click to toggle source
# File lib/freydis/disk.rb, line 61
def search_id
  Dir.glob("/dev/disk/by-id/*").each { |f|
    if File.readlink(f).match(/#{@disk}/)
      return f.delete_prefix("/dev/disk/by-id/")
    end
  }
end
search_partuuid() click to toggle source
# File lib/freydis/disk.rb, line 45
def search_partuuid
  Dir.glob("/dev/disk/by-partuuid/*").each { |f|
    if File.readlink(f).match(/#{@disk}/)
      return f.delete_prefix("/dev/disk/by-partuuid/")
    end
  }
end
search_uuid() click to toggle source
# File lib/freydis/disk.rb, line 53
def search_uuid
  Dir.glob("/dev/disk/by-uuid/*").each { |f|
    if File.readlink(f).match(/#{@disk}/)
      return f.delete_prefix("/dev/disk/by-uuid/")
    end
  }
end
size() click to toggle source
# File lib/freydis/disk.rb, line 10
def size
  `lsblk -dno SIZE #{@dev}`.chomp
end