Sha256: c2d405b9142d54100c29b7655ce308c707590f0d0a694fe9bc0b2fbd4afd64c8

Contents?: true

Size: 776 Bytes

Versions: 1

Compression:

Stored size: 776 Bytes

Contents

module AptDependencies
  extend self

  def self.ensure!
    return "true" if deps_to_install.none?
    if sudo_password_required? && ENV["RAILS_ENV"] != "development"
      $stderr.puts "sudo requires password! cannot install #{deps_to_install.join}"
      exit 1
    else
      "sudo apt install -y #{deps_to_install.join}"
    end
  end

  private

  def deps_to_install
    installed_deps = `apt list imagemagick thunderbird  --installed 2>/dev/null`.chomp.split("\n")[1..]
      .map { |line| line.split("/")[0] }
    deps - installed_deps
  end

  def deps
    @deps ||= File.readlines("Aptfile", chomp: true).select { |line| line.length > 0 }
  rescue Errno::ENOENT
    @deps = []
  end

  def sudo_password_required?
    !system("sudo -n true 2>/dev/null")
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
bard-0.50.2 install_files/apt_dependencies.rb