Software /
code /
prosody
Comparison
prosodyctl @ 8117:66d8f6b3c3ef
prosodyctl: Delay reporting of successful certificate imports until all done
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Sat, 22 Apr 2017 19:11:26 +0200 |
parent | 8111:3cbb311f8468 |
child | 8118:f8c52010bd37 |
comparison
equal
deleted
inserted
replaced
8116:76ac8b617402 | 8117:66d8f6b3c3ef |
---|---|
871 local owner, group; | 871 local owner, group; |
872 if pposix.getuid() == 0 then -- We need root to change ownership | 872 if pposix.getuid() == 0 then -- We need root to change ownership |
873 owner = config.get("*", "prosody_user") or "prosody"; | 873 owner = config.get("*", "prosody_user") or "prosody"; |
874 group = config.get("*", "prosody_group") or owner; | 874 group = config.get("*", "prosody_group") or owner; |
875 end | 875 end |
876 local imported = {}; | |
876 for _, host in ipairs(hostnames) do | 877 for _, host in ipairs(hostnames) do |
877 for _, dir in ipairs(arg) do | 878 for _, dir in ipairs(arg) do |
878 if lfs.attributes(dir .. "/" .. host .. "/fullchain.pem") | 879 if lfs.attributes(dir .. "/" .. host .. "/fullchain.pem") |
879 and lfs.attributes(dir .. "/" .. host .. "/privkey.pem") then | 880 and lfs.attributes(dir .. "/" .. host .. "/privkey.pem") then |
880 copy(dir .. "/" .. host .. "/fullchain.pem", cert_basedir .. "/" .. host .. ".crt", nil, owner, group); | 881 copy(dir .. "/" .. host .. "/fullchain.pem", cert_basedir .. "/" .. host .. ".crt", nil, owner, group); |
881 copy(dir .. "/" .. host .. "/privkey.pem", cert_basedir .. "/" .. host .. ".key", "0377", owner, group); | 882 copy(dir .. "/" .. host .. "/privkey.pem", cert_basedir .. "/" .. host .. ".key", "0377", owner, group); |
882 show_message("Imported certificate and key for "..host); | 883 table.insert(imported, host); |
883 elseif lfs.attributes(dir .. "/" .. host .. ".crt") | 884 elseif lfs.attributes(dir .. "/" .. host .. ".crt") |
884 and lfs.attributes(dir .. "/" .. host .. ".key") then | 885 and lfs.attributes(dir .. "/" .. host .. ".key") then |
885 copy(dir .. "/" .. host .. ".crt", cert_basedir .. "/" .. host .. ".crt", nil, owner, group); | 886 copy(dir .. "/" .. host .. ".crt", cert_basedir .. "/" .. host .. ".crt", nil, owner, group); |
886 copy(dir .. "/" .. host .. ".key", cert_basedir .. "/" .. host .. ".key", "0377", owner, group); | 887 copy(dir .. "/" .. host .. ".key", cert_basedir .. "/" .. host .. ".key", "0377", owner, group); |
887 show_message("Imported certificate and key for "..host); | 888 table.insert(imported, host); |
888 else | 889 else |
889 show_warning("No certificate for host "..host.." found :("); | 890 show_warning("No certificate for host "..host.." found :("); |
890 end | 891 end |
891 -- TODO Additional checks | 892 -- TODO Additional checks |
892 -- Certificate names matches the hostname | 893 -- Certificate names matches the hostname |
893 -- Private key matches public key in certificate | 894 -- Private key matches public key in certificate |
894 end | 895 end |
896 end | |
897 if imported[1] then | |
898 show_message("Imported certificate and key for hosts "..table.concat(imported, ", ")); | |
895 end | 899 end |
896 end | 900 end |
897 | 901 |
898 function commands.cert(arg) | 902 function commands.cert(arg) |
899 if #arg >= 1 and arg[1] ~= "--help" then | 903 if #arg >= 1 and arg[1] ~= "--help" then |