brew/Library/Homebrew/bundle/brew_services.rb

54 lines
1.2 KiB
Ruby
Raw Normal View History

# 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
@started_services ||= begin
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