Sha256: a71a2889fd2e807f4de142c4403cae0d85bc07321d6bd0c61ad66eb9280bcb53

Contents?: true

Size: 1.46 KB

Versions: 3

Compression:

Stored size: 1.46 KB

Contents

require 'open-uri'
require 'open3'
require 'fileutils'

module Helpers
  def self.efi?
    Dir.exist? '/sys/firmware/efi/efivars'
  end

  def self.get_file_online(url, dest)
    URI.open(url) do |l|
      File.open(dest, "wb") do |f|
        f.write(l.read)
      end
    end
  end

  def self.exec_or_die(cmd)
    _, stderr, status = Open3.capture3(cmd)
    unless status.success?
      raise "Problem running #{cmd}, stderr was:\n#{stderr}"
    end
  end

  def self.create_dir(path, perm = 0755)
    FileUtils.mkdir_p path, mode: perm if ! Dir.exist?(path)
  end

  def self.add_file(path, content = '')
    File.write path, content if ! File.exist? path
  end

  def self.mkdir(dir)
    FileUtils.mkdir_p dir if ! Dir.exist? dir
  end

  def self.touch(file)
    File.write file, '' if ! File.exist? file
  end

  def self.grep?(file, regex)
    is_found = false
    return is_found if ! File.exist? file
    File.open(file) do |f|
      f.each do |line|
        is_found = true if line.match(regex)
      end
    end
    is_found
  end

  def self.sys(cmd)
    system(cmd)
    unless $?.success?
      raise "Error with #{cmd}"
    end
  end

  def self.partuuid(dev)
    `lsblk -o PARTUUID #{dev}`.match(/[\w]+-[\w]+-[\w]+-[\w]+-[\w]+/)
  end

  def self.uuid(dev)
    `lsblk -do UUID #{dev}`.match(/[\w]+-[\w]+-[\w]+-[\w]+-[\w]+/)
  end

  # Used with ZFS for the pool name
  def self.pool_id(dev)
    `lsblk -o PARTUUID #{dev}`.delete("\n").delete("PARTUUID").match(/[\w]{5}/)
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
getch-0.1.3 lib/getch/helpers.rb
getch-0.1.2 lib/getch/helpers.rb
getch-0.1.1 lib/getch/helpers.rb