diff --git a/src/cli/commands/manager.rs b/src/cli/commands/manager.rs index e05620a..9897328 100644 --- a/src/cli/commands/manager.rs +++ b/src/cli/commands/manager.rs @@ -113,7 +113,11 @@ async fn async_run(cmd: ManagerSubcommand) -> CliResult { .context("Failed to stop service")?; Ok(()) } - ManagerSubcommand::Service(ManagerServiceSubcommand::Install { kind, user }) => { + ManagerSubcommand::Service(ManagerServiceSubcommand::Install { + kind, + user, + args: extra_args, + }) => { debug!("Installing manager service via {:?}", kind); let mut manager = ::target_or_native(kind) .context("Failed to detect native service manager")?; @@ -126,6 +130,10 @@ async fn async_run(cmd: ManagerSubcommand) -> CliResult { .context("Failed to set service manager to user level")?; } + for arg in extra_args { + args.push(arg.into()); + } + manager .install(ServiceInstallCtx { label: SERVICE_LABEL.clone(), diff --git a/src/options.rs b/src/options.rs index b9c0000..4d087b9 100644 --- a/src/options.rs +++ b/src/options.rs @@ -1034,6 +1034,10 @@ pub enum ManagerServiceSubcommand { /// If specified, installs as a user-level service #[clap(long)] user: bool, + + /// Additional arguments to provide to the manager when started + #[clap(name = "ARGS", last = true)] + args: Vec, }, /// Uninstall the manager as a service