class Invoker::Power::LinuxSetup
Attributes
distro_installer[RW]
Public Instance Methods
build_power_config()
click to toggle source
Calls superclass method
Invoker::Power::Setup#build_power_config
# File lib/invoker/power/setup/linux_setup.rb, line 37 def build_power_config config = super config[:tld] = distro_installer.tld config end
forwarder_script()
click to toggle source
# File lib/invoker/power/setup/linux_setup.rb, line 47 def forwarder_script File.join(File.dirname(__FILE__), "files/invoker_forwarder.sh.erb") end
resolver_file()
click to toggle source
# File lib/invoker/power/setup/linux_setup.rb, line 43 def resolver_file distro_installer.resolver_file end
setup_invoker()
click to toggle source
# File lib/invoker/power/setup/linux_setup.rb, line 10 def setup_invoker initialize_distro_installer if distro_installer.get_user_confirmation? find_open_ports distro_installer.install_required_software install_resolver install_port_forwarder distro_installer.restart_services drop_to_normal_user create_config_file else Invoker::Logger.puts("Invoker is not configured to serve from subdomains".colorize(:red)) end self end
socat_unit()
click to toggle source
# File lib/invoker/power/setup/linux_setup.rb, line 51 def socat_unit File.join(File.dirname(__FILE__), "files/socat_invoker.service") end
uninstall_invoker()
click to toggle source
# File lib/invoker/power/setup/linux_setup.rb, line 26 def uninstall_invoker system("systemctl disable socat_invoker.service") system("systemctl stop socat_invoker.service") system("rm #{Invoker::Power::Distro::Base::SOCAT_SYSTEMD}") system("rm #{Invoker::Power::Distro::Base::SOCAT_SHELLSCRIPT}") initialize_distro_installer remove_resolver_file drop_to_normal_user Invoker::Power::Config.delete end
Private Instance Methods
initialize_distro_installer()
click to toggle source
# File lib/invoker/power/setup/linux_setup.rb, line 57 def initialize_distro_installer @distro_installer ||= Invoker::Power::Distro::Base.distro_installer(tld) end
install_forwarder_script(http_port, https_port)
click to toggle source
# File lib/invoker/power/setup/linux_setup.rb, line 81 def install_forwarder_script(http_port, https_port) script_template = File.read(forwarder_script) renderer = ERB.new(script_template) script_output = renderer.result(binding) File.open(Invoker::Power::Distro::Base::SOCAT_SHELLSCRIPT, "w") do |fl| fl.write(script_output) end system("chmod +x #{Invoker::Power::Distro::Base::SOCAT_SHELLSCRIPT}") end
install_port_forwarder()
click to toggle source
# File lib/invoker/power/setup/linux_setup.rb, line 68 def install_port_forwarder install_forwarder_script(port_finder.http_port, port_finder.https_port) install_systemd_unit end
install_resolver()
click to toggle source
# File lib/invoker/power/setup/linux_setup.rb, line 61 def install_resolver return if resolver_file.nil? File.open(resolver_file, "w") do |fl| fl.write(resolver_file_content) end end
install_systemd_unit()
click to toggle source
# File lib/invoker/power/setup/linux_setup.rb, line 91 def install_systemd_unit FileUtils.cp(socat_unit, Invoker::Power::Distro::Base::SOCAT_SYSTEMD) system("chmod 644 #{Invoker::Power::Distro::Base::SOCAT_SYSTEMD}") end
resolver_file_content()
click to toggle source
# File lib/invoker/power/setup/linux_setup.rb, line 73 def resolver_file_content content =<<-EOD local=/#{tld}/ address=/#{tld}/127.0.0.1 EOD content end