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