From cbae2db05cae1ceb186a191e1fb927c5f3300048 Mon Sep 17 00:00:00 2001 From: j Date: Thu, 15 Jan 2026 10:25:23 +1300 Subject: [PATCH] Update source/src/commands/create-service.cpp --- source/src/commands/create-service.cpp | 39 +++++++++++++++++--------- 1 file changed, 25 insertions(+), 14 deletions(-) diff --git a/source/src/commands/create-service.cpp b/source/src/commands/create-service.cpp index e68cbba..6c1120a 100644 --- a/source/src/commands/create-service.cpp +++ b/source/src/commands/create-service.cpp @@ -30,14 +30,15 @@ namespace dropshell false, // hidden true, // requires_config true, // requires_install - 3, // min_args (after command) + 2, // min_args (after command) 3, // max_args (after command) - "create-service SERVER SERVICE TEMPLATE", + "create-service SERVER TEMPLATE [SERVICE]", "Create a service on a server.", // heredoc R"( Create a service on a server. - create-service SERVER SERVICE TEMPLATE create the given service on the given server. + create-service SERVER TEMPLATE [SERVICE] create a service on the given server. + SERVICE defaults to TEMPLATE name if not specified. )"}); } } create_service_command_register; @@ -45,24 +46,34 @@ namespace dropshell int create_service_handler(const CommandContext &ctx) { std::string server = safearg(ctx.args, 0); - std::string service = safearg(ctx.args, 1); - std::string template_name = safearg(ctx.args, 2); + std::string template_name = safearg(ctx.args, 1); + std::string service = safearg(ctx.args, 2); + + // Default service name to template name if not specified + if (service.empty()) + service = template_name; return shared_commands::create_service(server, template_name, service) ? 0 : 1; } void create_service_autocomplete(const CommandContext &ctx) { - if (ctx.args.size() < 2) - shared_commands::std_autocomplete(ctx); - else + if (ctx.args.size() == 0) { - if (ctx.args.size() == 2) - { - std::set templates = gTemplateManager().get_template_list(); - for (const auto &template_name : templates) - rawout << template_name << std::endl; - } + // First arg: server name + shared_commands::std_autocomplete(ctx); + } + else if (ctx.args.size() == 1) + { + // Second arg: template name + std::set templates = gTemplateManager().get_template_list(); + for (const auto &template_name : templates) + rawout << template_name << std::endl; + } + else if (ctx.args.size() == 2) + { + // Third arg: service name - suggest template name as default + rawout << ctx.args[1] << std::endl; } }