From 7cd9c0dd032e93217e45527da7b3b3c1e47baff0 Mon Sep 17 00:00:00 2001 From: Your Name Date: Sat, 26 Apr 2025 09:51:44 +1200 Subject: [PATCH] Tidy config file format. --- src/autocomplete.cpp | 46 +++++++++++++++++++++++++++++++++++++++++++ src/config.cpp | 33 +++++++++++++++---------------- src/main_commands.cpp | 9 +++++---- src/utils/utils.cpp | 24 +++++++--------------- 4 files changed, 74 insertions(+), 38 deletions(-) diff --git a/src/autocomplete.cpp b/src/autocomplete.cpp index 712c283..28dfa32 100644 --- a/src/autocomplete.cpp +++ b/src/autocomplete.cpp @@ -1,11 +1,14 @@ #include "autocomplete.hpp" #include "servers.hpp" #include "config.hpp" +#include "templates.hpp" +#include #include void dropshell::autocomplete(const std::vector &args) { + auto cfg = dropshell::get_global_config(); // std::cerr << "[ "< &args) if (args.size() < 3) // dropshell autocomplete ??? autocomplete_list_commands(); + + std::string cmd = args[2]; + + std::string noargcmds[] = {"templates","autocomplete_list_servers","autocomplete_list_services","autocomplete_list_commands"}; + if (std::find(std::begin(noargcmds), std::end(noargcmds), cmd) != std::end(noargcmds)) + return; + + if (!cfg->is_config_set()) + return; // can't help without working config. + + if (args.size()==3) // we have the command but nothing else. dropshell autocomplete command + { + auto servers = dropshell::get_configured_servers(); + for (const auto& server : servers) + std::cout << server.name << std::endl; + return; + } + + if (args.size()==4) // we have the command and the server. dropshell autocomplete command server + { + std::string server = args[3]; + + if (cmd=="create-service") + { // create-service