2025-03-18 17:38:37 +00:00
|
|
|
# typed: true # rubocop:todo Sorbet/StrictSigil
|
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module Homebrew
|
|
|
|
module Bundle
|
|
|
|
module BrewServices
|
|
|
|
module_function
|
|
|
|
|
|
|
|
def reset!
|
|
|
|
@started_services = nil
|
|
|
|
end
|
|
|
|
|
|
|
|
def stop(name, verbose: false)
|
|
|
|
return true unless started?(name)
|
|
|
|
|
|
|
|
return unless Bundle.brew("services", "stop", name, verbose:)
|
|
|
|
|
|
|
|
started_services.delete(name)
|
|
|
|
true
|
|
|
|
end
|
|
|
|
|
|
|
|
def start(name, verbose: false)
|
|
|
|
return unless Bundle.brew("services", "start", name, verbose:)
|
|
|
|
|
|
|
|
started_services << name
|
|
|
|
true
|
|
|
|
end
|
|
|
|
|
|
|
|
def restart(name, verbose: false)
|
|
|
|
return unless Bundle.brew("services", "restart", name, verbose:)
|
|
|
|
|
|
|
|
started_services << name
|
|
|
|
true
|
|
|
|
end
|
|
|
|
|
|
|
|
def started?(name)
|
|
|
|
started_services.include? name
|
|
|
|
end
|
|
|
|
|
|
|
|
def started_services
|
2025-03-19 10:14:56 +00:00
|
|
|
@started_services ||= begin
|
2025-03-18 17:38:37 +00:00
|
|
|
states_to_skip = %w[stopped none]
|
|
|
|
Utils.safe_popen_read("brew", "services", "list").lines.filter_map do |line|
|
|
|
|
name, state, _plist = line.split(/\s+/)
|
|
|
|
next if states_to_skip.include? state
|
|
|
|
|
|
|
|
name
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|