class Invoker::Power::Distro::Base

Constants

RESOLVER_DIR
SOCAT_SHELLSCRIPT
SOCAT_SYSTEMD

Attributes

tld[RW]

Public Class Methods

distro() click to toggle source
# File lib/invoker/power/setup/distro/base.rb, line 35
def self.distro
  @distro ||= if File.exist?('/etc/os-release')
    File.read('/etc/os-release').each_line do |line|
      parsed_line = line.chomp.tr('"', '').split('=')
      break parsed_line[1] if parsed_line[0] == 'NAME'
    end
  else
    raise "File /etc/os-release doesn't exist or not Linux"
  end
end
distro_installer(tld) click to toggle source
# File lib/invoker/power/setup/distro/base.rb, line 14
def self.distro_installer(tld)
  if distro.start_with? "Arch Linux", "Manjaro Linux"
    require "invoker/power/setup/distro/arch"
    Arch.new(tld)
  elsif distro.start_with? "Debian"
    require "invoker/power/setup/distro/debian"
    Debian.new(tld)
  elsif distro.start_with? "Fedora"
    require "invoker/power/setup/distro/redhat"
    Redhat.new(tld)
  elsif distro.start_with? "Linux Mint", "Ubuntu"
    require "invoker/power/setup/distro/ubuntu"
    Ubuntu.new(tld)
  elsif distro.start_with? "openSUSE"
    require "invoker/power/setup/distro/opensuse"
    Opensuse.new(tld)
  else
    raise "Your selected distro is not supported by Invoker"
  end
end
new(tld) click to toggle source
# File lib/invoker/power/setup/distro/base.rb, line 46
def initialize(tld)
  self.tld = tld
end

Public Instance Methods

get_user_confirmation?() click to toggle source
# File lib/invoker/power/setup/distro/base.rb, line 70
def get_user_confirmation?
  Invoker::Logger.puts("Invoker is going to install #{install_packages} on this machine."\
    " It is also going to install#{install_other} a socat service"\
    " which will forward all local requests on port 80 and 443 to another port")
  Invoker::Logger.puts("If you still want to proceed with installation, press y.")
  Invoker::CLI::Question.agree("Proceed with installation (y/n) : ")
end
install_other() click to toggle source
# File lib/invoker/power/setup/distro/base.rb, line 66
def install_other
  " a local resolver for .#{tld} domain and"
end
install_packages() click to toggle source
# File lib/invoker/power/setup/distro/base.rb, line 62
def install_packages
  "dnsmasq and socat"
end
install_required_software() click to toggle source

Install required software

# File lib/invoker/power/setup/distro/base.rb, line 51
def install_required_software
  raise "Unimplemented"
end
resolver_file() click to toggle source
# File lib/invoker/power/setup/distro/base.rb, line 10
def resolver_file
  File.join(RESOLVER_DIR, "#{tld}-tld")
end
restart_services() click to toggle source
# File lib/invoker/power/setup/distro/base.rb, line 55
def restart_services
  system("systemctl enable socat_invoker.service")
  system("systemctl enable dnsmasq")
  system("systemctl start socat_invoker.service")
  system("systemctl restart dnsmasq")
end