Sha256: 28cf73674e26beabf9727f3df7240a945c2fa9fd66b5a59fc430a974180b59ba

Contents?: true

Size: 1.13 KB

Versions: 1

Compression:

Stored size: 1.13 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
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
getch-0.1.0 lib/getch/helpers.rb