Software /
code /
prosody
Comparison
prosodyctl @ 3339:7893055e54d1
prosodyctl: Warn and exit if any log files are not writeable, fixes #94
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Fri, 09 Jul 2010 01:09:57 +0100 |
parent | 3338:d50b6b3efad1 |
child | 3471:482275e38224 |
comparison
equal
deleted
inserted
replaced
3338:d50b6b3efad1 | 3339:7893055e54d1 |
---|---|
62 print("**************************"); | 62 print("**************************"); |
63 print(""); | 63 print(""); |
64 os.exit(1); | 64 os.exit(1); |
65 end | 65 end |
66 end | 66 end |
67 | 67 local original_logging_config = config.get("*", "core", "log"); |
68 config.set("*", "core", "log", { { levels = { min="info" }, to = "console" } }); | 68 config.set("*", "core", "log", { { levels = { min="info" }, to = "console" } }); |
69 | 69 |
70 require "core.loggingmanager" | 70 require "core.loggingmanager" |
71 | 71 |
72 if not require "util.dependencies".check_dependencies() then | 72 if not require "util.dependencies".check_dependencies() then |
108 else | 108 else |
109 print("Error: Unable to load pposix module. Check that Prosody is installed correctly.") | 109 print("Error: Unable to load pposix module. Check that Prosody is installed correctly.") |
110 print("For more help send the below error to us through http://prosody.im/discuss"); | 110 print("For more help send the below error to us through http://prosody.im/discuss"); |
111 print(tostring(pposix)) | 111 print(tostring(pposix)) |
112 end | 112 end |
113 | |
114 local function test_writeable(filename) | |
115 local f, err = io.open(filename, "a"); | |
116 if not f then | |
117 return false, err; | |
118 end | |
119 f:close(); | |
120 return true; | |
121 end | |
122 | |
123 local unwriteable_files = {}; | |
124 if type(original_logging_config) == "string" and original_logging_config:sub(1,1) ~= "*" then | |
125 local ok, err = test_writeable(original_logging_config); | |
126 if not ok then | |
127 table.insert(unwriteable_files, err); | |
128 end | |
129 elseif type(original_logging_config) == "table" then | |
130 for _, rule in ipairs(original_logging_config) do | |
131 if rule.filename then | |
132 local ok, err = test_writeable(rule.filename); | |
133 if not ok then | |
134 table.insert(unwriteable_files, err); | |
135 end | |
136 end | |
137 end | |
138 end | |
139 | |
140 if #unwriteable_files > 0 then | |
141 print("One of more of the Prosody log files are not"); | |
142 print("writeable, please correct the errors and try"); | |
143 print("starting prosodyctl again."); | |
144 print(""); | |
145 for _, err in ipairs(unwriteable_files) do | |
146 print(err); | |
147 end | |
148 print(""); | |
149 os.exit(1); | |
150 end | |
151 | |
113 | 152 |
114 local error_messages = setmetatable({ | 153 local error_messages = setmetatable({ |
115 ["invalid-username"] = "The given username is invalid in a Jabber ID"; | 154 ["invalid-username"] = "The given username is invalid in a Jabber ID"; |
116 ["invalid-hostname"] = "The given hostname is invalid"; | 155 ["invalid-hostname"] = "The given hostname is invalid"; |
117 ["no-password"] = "No password was supplied"; | 156 ["no-password"] = "No password was supplied"; |