Diff

prosodyctl @ 8121:a33a87f13155

Merge 0.10->trunk
author Kim Alvefur <zash@zash.se>
date Mon, 24 Apr 2017 14:19:49 +0200
parent 8112:d8ecefcb7c97
parent 8120:3c5f0cb4381a
child 8128:c14513401d65
line wrap: on
line diff
--- a/prosodyctl	Fri Apr 21 15:22:17 2017 +0200
+++ b/prosodyctl	Mon Apr 24 14:19:49 2017 +0200
@@ -873,19 +873,21 @@
 		owner = config.get("*", "prosody_user") or "prosody";
 		group = config.get("*", "prosody_group") or owner;
 	end
+	local imported = {};
 	for _, host in ipairs(hostnames) do
 		for _, dir in ipairs(arg) do
 			if lfs.attributes(dir .. "/" .. host .. "/fullchain.pem")
 			and lfs.attributes(dir .. "/" .. host .. "/privkey.pem") then
 				copy(dir .. "/" .. host .. "/fullchain.pem", cert_basedir .. "/" .. host .. ".crt", nil, owner, group);
 				copy(dir .. "/" .. host .. "/privkey.pem", cert_basedir .. "/" .. host .. ".key", "0377", owner, group);
-				show_message("Imported certificate and key for "..host);
+				table.insert(imported, host);
 			elseif lfs.attributes(dir .. "/" .. host .. ".crt")
 			and lfs.attributes(dir .. "/" .. host .. ".key") then
 				copy(dir .. "/" .. host .. ".crt", cert_basedir .. "/" .. host .. ".crt", nil, owner, group);
 				copy(dir .. "/" .. host .. ".key", cert_basedir .. "/" .. host .. ".key", "0377", owner, group);
-				show_message("Imported certificate and key for "..host);
+				table.insert(imported, host);
 			else
+				-- TODO Say where we looked
 				show_warning("No certificate for host "..host.." found :(");
 			end
 			-- TODO Additional checks
@@ -893,6 +895,16 @@
 			-- Private key matches public key in certificate
 		end
 	end
+	if imported[1] then
+		show_message("Imported certificate and key for hosts "..table.concat(imported, ", "));
+		local ok, err = prosodyctl.reload();
+		if not ok and err ~= "not-running" then
+			show_message(error_messages[err]);
+		end
+	else
+		show_warning("No certificates imported :(");
+		return 1;
+	end
 end
 
 function commands.cert(arg)