class MacSetup::ServicesInstaller
Constants
- LAUNCH_AGENTS_PATH
- SERVICES_TAP
Attributes
config[R]
running_services[R]
services[R]
status[R]
Public Class Methods
new(config, status)
click to toggle source
# File lib/mac_setup/services_installer.rb, line 16 def initialize(config, status) @config = config @status = status @services = config.services end
run(config, status)
click to toggle source
# File lib/mac_setup/services_installer.rb, line 12 def self.run(config, status) new(config, status).run end
Public Instance Methods
run()
click to toggle source
# File lib/mac_setup/services_installer.rb, line 22 def run return if services.none? MacSetup.log "Installing services..." FileUtils.mkdir_p(LAUNCH_AGENTS_PATH) tap_services get_running_services services.each { |service| install_service(service) } end
Private Instance Methods
get_running_services()
click to toggle source
# File lib/mac_setup/services_installer.rb, line 36 def get_running_services services_list = Shell.run("brew services list").split("\n").drop(1) services_with_status = services_list.map { |line| line.split(/\s+/, 3).take(2) } @running_services = services_with_status.each_with_object([]) do |(service, status), services| services << service if status == "started" end end
install_service(service)
click to toggle source
# File lib/mac_setup/services_installer.rb, line 45 def install_service(service) if running_services.include?(service) MacSetup.log "Restarting #{service} service..." Shell.run("brew services restart #{service}") else MacSetup.log "Installing #{service} service..." Shell.run("brew services start #{service}") end end
services_already_tapped?()
click to toggle source
# File lib/mac_setup/services_installer.rb, line 63 def services_already_tapped? status.installed_taps.include?(SERVICES_TAP) end
tap_services()
click to toggle source
# File lib/mac_setup/services_installer.rb, line 57 def tap_services return if services_already_tapped? Shell.run("brew tap #{SERVICES_TAP}") end