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