diff --git a/README.rst b/README.rst index 8f74a1a..5062531 100644 --- a/README.rst +++ b/README.rst @@ -22,6 +22,7 @@ TODO * basic mail alias management? * fix autoresponder in ``dovecot.lua`` +* fix TODOs in ``web.lua`` Additional resources ==================== @@ -31,3 +32,6 @@ The official code can be found at https://www.liveconfig.com/de/downloads. Implemented features: * dovecot NOUPDATE +* special dovecot user sieve settings +* dovecot mdbox format for mailboxes +* improve PHP version management diff --git a/custom.lua b/custom.lua new file mode 100644 index 0000000..5725c0d --- /dev/null +++ b/custom.lua @@ -0,0 +1,43 @@ +-- Env vars +dovecot.NOUPDATE = true +postfix.NOUPDATE = true + +php_versions = { + php53 = { + bin = "/usr/bin/php53/php-cgi", + alias = "5.3", + }, + php54 = { + bin = "/usr/bin/php54/php-cgi", + alias = "5.4", + }, + php55 = { + bin = "/usr/bin/php55/php-cgi", + alias = "5.5", + prio = 0, + }, + php56 = { + bin = "/usr/bin/php56/php-cgi", + alias = "5.6", + }, +} + + +-- Magic goes below + +for k, v in pairs(php_versions) do + if v.bin ~= nil and LC.fs.is_file(v.bin) then + local alias = nil + local prio = nil + + if v.alias ~= nil then + alias = v.alias + end + + if v.prio ~= nil then + prio = v.prio + end + + LC.web.addPHP(k, v.bin, alias, prio) + end +end diff --git a/src/lua/dovecot.lua b/src/lua/dovecot.lua index 7b3ca6b..b5612fa 100644 --- a/src/lua/dovecot.lua +++ b/src/lua/dovecot.lua @@ -777,7 +777,7 @@ function addMailbox(cfg, opts, data) pwd = LC.crypt.cram_md5(data.password) algo = "CRAM-MD5" end - new_line = data.name .. "@" .. data.domain .. ":{" .. algo .. "}" .. pwd .. ":" .. uid .. ":" .. gid .. "::/var/mail::userdb_mail=maildir:/var/mail/" .. data.contract .. "/" .. data.id .. "/" + new_line = data.name .. "@" .. data.domain .. ":{" .. algo .. "}" .. pwd .. ":" .. uid .. ":" .. gid .. "::/var/mail::userdb_mail=mdbox:/var/mail/" .. data.contract .. "/" .. data.id .. "/" if data.quota ~= nil and data.quota > 0 then new_line = new_line .. " userdb_quota_rule=*:storage=" .. data.quota .. "MB" end diff --git a/src/lua/web.lua b/src/lua/web.lua index 4d943a7..7b241f4 100644 --- a/src/lua/web.lua +++ b/src/lua/web.lua @@ -142,9 +142,12 @@ function detect() elseif LC.fs.is_file("/usr/bin/php") then php = "/usr/bin/php" end - if php ~= nil then - addPHP(nil, php) - end + + --TODO: some users may want to use the default bin, provide variable like + -- web.use_default_php = False to optionally disable it + --if php ~= nil then + -- addPHP(nil, php) + --end LCS.web.phpVersions = phplist @@ -898,7 +901,7 @@ for i in ${CONFDIR}/*.conf; do if [ "${LOGFILE}" != "${NLOGFILE}" -a -r "${NLOGFILE}" ]; then ${WEBALIZER} -c ${i} -Q ${NLOGFILE} || continue; fi; - + done; # done. @@ -1117,7 +1120,7 @@ end -- --------------------------------------------------------------------------- -- updatePasswd() -- --- Create/update +-- Create/update -- --------------------------------------------------------------------------- function updatePasswd(opts) @@ -1185,7 +1188,7 @@ end -- -- Register PHP version -- --------------------------------------------------------------------------- -function addPHP(code, bin, version) +function addPHP(code, bin, version, prio) -- check that this binary exists: if not LC.fs.is_file(bin) then @@ -1193,7 +1196,9 @@ function addPHP(code, bin, version) end -- priority: 0=default version, 1=additional version - local prio = 1 + if prio == nil then + prio = 1 + end local handle = io.popen(bin .. " -v", "r") if handle == nil then