Comparison

prosodyctl @ 12103:fc297128c33a

prosodyctl: Hide process management commands when init system should be used instead
author Kim Alvefur <zash@zash.se>
date Tue, 21 Dec 2021 14:23:09 +0100
parent 12102:949c2b52f51e
child 12264:ba712f7559dc
comparison
equal deleted inserted replaced
12102:949c2b52f51e 12103:fc297128c33a
224 224
225 show_message(error_messages[msg]) 225 show_message(error_messages[msg])
226 return 1; 226 return 1;
227 end 227 end
228 228
229 local function has_init_system() --> which
230 lfs = lfs or require"lfs";
231 if lfs.attributes("/etc/systemd") then
232 return "systemd";
233 elseif lfs.attributes("/etc/init.d/prosody") then
234 return "rc.d";
235 end
236 end
237
229 local function service_command_warning(service_command) 238 local function service_command_warning(service_command)
230 if prosody.installed and configmanager.get("*", "prosodyctl_service_warnings") ~= false then 239 if prosody.installed and configmanager.get("*", "prosodyctl_service_warnings") ~= false then
231 show_warning("WARNING: Use of prosodyctl start/stop/restart/reload is not recommended"); 240 show_warning("WARNING: Use of prosodyctl start/stop/restart/reload is not recommended");
232 show_warning(" if Prosody is managed by an init system - use that directly instead."); 241 show_warning(" if Prosody is managed by an init system - use that directly instead.");
233 lfs = lfs or require"lfs"; 242 local init = has_init_system()
234 if lfs.attributes("/etc/systemd") then 243 if init == "systemd" then
235 show_warning(" e.g. systemctl %s prosody", service_command); 244 show_warning(" e.g. systemctl %s prosody", service_command);
236 elseif lfs.attributes("/etc/init.d/prosody") then 245 elseif init == "rc.d" then
237 show_warning(" e.g. /etc/init.d/prosody %s", service_command); 246 show_warning(" e.g. /etc/init.d/prosody %s", service_command);
238 end 247 end
239 show_warning(""); 248 show_warning("");
240 end 249 end
241 end 250 end
674 shell = "Interact with a running Prosody", 683 shell = "Interact with a running Prosody",
675 } 684 }
676 685
677 local done = {}; 686 local done = {};
678 687
688 if prosody.installed and has_init_system() then
689 -- Hide start, stop, restart
690 done[table.remove(commands_order, 2)] = true;
691 done[table.remove(commands_order, 2)] = true;
692 done[table.remove(commands_order, 2)] = true;
693 end
694
679 for _, command_name in ipairs(commands_order) do 695 for _, command_name in ipairs(commands_order) do
680 local command_func = commands[command_name]; 696 local command_func = commands[command_name];
681 if command_func then 697 if command_func then
682 command_func{ "--help" }; 698 command_func{ "--help" };
683 done[command_name] = true; 699 done[command_name] = true;