services: support --file= in restart command
This commit is contained in:
parent
615fb764a1
commit
2b906e4fe3
@ -45,7 +45,7 @@ module Homebrew
|
||||
[`sudo`] `brew services kill` (<formula>|`--all`):
|
||||
Stop the service <formula> immediately but keep it registered to launch at login (or boot).
|
||||
|
||||
[`sudo`] `brew services restart` (<formula>|`--all`):
|
||||
[`sudo`] `brew services restart` (<formula>|`--all`|`--file=`):
|
||||
Stop (if necessary) and start the service <formula> immediately and register it to launch at login (or boot).
|
||||
|
||||
[`sudo`] `brew services cleanup`:
|
||||
@ -110,6 +110,7 @@ module Homebrew
|
||||
file_commands = [
|
||||
*Homebrew::Services::Commands::Start::TRIGGERS,
|
||||
*Homebrew::Services::Commands::Run::TRIGGERS,
|
||||
*Homebrew::Services::Commands::Restart::TRIGGERS,
|
||||
]
|
||||
if file_commands.exclude?(subcommand)
|
||||
raise UsageError, "The `#{subcommand}` subcommand does not accept the --file= argument!"
|
||||
@ -166,7 +167,7 @@ module Homebrew
|
||||
when *Homebrew::Services::Commands::Info::TRIGGERS
|
||||
Homebrew::Services::Commands::Info.run(targets, verbose: args.verbose?, json: args.json?)
|
||||
when *Homebrew::Services::Commands::Restart::TRIGGERS
|
||||
Homebrew::Services::Commands::Restart.run(targets, verbose: args.verbose?)
|
||||
Homebrew::Services::Commands::Restart.run(targets, args.file, verbose: args.verbose?)
|
||||
when *Homebrew::Services::Commands::Run::TRIGGERS
|
||||
Homebrew::Services::Commands::Run.run(targets, args.file, verbose: args.verbose?)
|
||||
when *Homebrew::Services::Commands::Start::TRIGGERS
|
||||
|
||||
@ -14,8 +14,14 @@ module Homebrew
|
||||
|
||||
TRIGGERS = %w[restart relaunch reload r].freeze
|
||||
|
||||
sig { params(targets: T::Array[Services::FormulaWrapper], verbose: T::Boolean).void }
|
||||
def self.run(targets, verbose:)
|
||||
sig {
|
||||
params(
|
||||
targets: T::Array[Services::FormulaWrapper],
|
||||
custom_plist: T.nilable(String),
|
||||
verbose: T::Boolean,
|
||||
).void
|
||||
}
|
||||
def self.run(targets, custom_plist, verbose:)
|
||||
Services::Cli.check(targets)
|
||||
|
||||
ran = []
|
||||
@ -30,8 +36,8 @@ module Homebrew
|
||||
Services::Cli.stop([service], verbose:) if service.loaded?
|
||||
end
|
||||
|
||||
Services::Cli.run(targets, verbose:) if ran.present?
|
||||
Services::Cli.start(started, verbose:) if started.present?
|
||||
Services::Cli.run(targets, custom_plist, verbose:) if ran.present?
|
||||
Services::Cli.start(started, custom_plist, verbose:) if started.present?
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
@ -12,7 +12,7 @@ RSpec.describe Homebrew::Services::Commands::Restart do
|
||||
describe "#run" do
|
||||
it "fails with empty list" do
|
||||
expect do
|
||||
described_class.run([], verbose: false)
|
||||
described_class.run([], nil, verbose: false)
|
||||
end.to raise_error UsageError, "Invalid usage: Formula(e) missing, please provide a formula name or use --all"
|
||||
end
|
||||
|
||||
@ -21,7 +21,7 @@ RSpec.describe Homebrew::Services::Commands::Restart do
|
||||
expect(Homebrew::Services::Cli).not_to receive(:stop)
|
||||
expect(Homebrew::Services::Cli).to receive(:start).once
|
||||
service = instance_double(Homebrew::Services::FormulaWrapper, service_name: "name", loaded?: false)
|
||||
expect { described_class.run([service], verbose: false) }.not_to raise_error
|
||||
expect { described_class.run([service], nil, verbose: false) }.not_to raise_error
|
||||
end
|
||||
|
||||
it "starts if services are loaded with file" do
|
||||
@ -30,7 +30,7 @@ RSpec.describe Homebrew::Services::Commands::Restart do
|
||||
expect(Homebrew::Services::Cli).to receive(:stop).once
|
||||
service = instance_double(Homebrew::Services::FormulaWrapper, service_name: "name", loaded?: true,
|
||||
service_file_present?: true)
|
||||
expect { described_class.run([service], verbose: false) }.not_to raise_error
|
||||
expect { described_class.run([service], nil, verbose: false) }.not_to raise_error
|
||||
end
|
||||
|
||||
it "runs if services are loaded without file" do
|
||||
@ -39,7 +39,7 @@ service_file_present?: true)
|
||||
expect(Homebrew::Services::Cli).to receive(:stop).once
|
||||
service = instance_double(Homebrew::Services::FormulaWrapper, service_name: "name", loaded?: true,
|
||||
service_file_present?: false)
|
||||
expect { described_class.run([service], verbose: false) }.not_to raise_error
|
||||
expect { described_class.run([service], nil, verbose: false) }.not_to raise_error
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user